int类型的长度为什么不统一?int类型和硬件寄存器有多统一?数据类型长度是编译器决定的?

int类型的长度为什么不统一?

以C语言为例,它为了支持不同硬件平台,在计算机早期,硬件资源包括内存资源非常紧张,C语言标准不能直接规定int类型就是16位或者32位,这样会造成其它平台不能运行。故,标准做了取舍,不规定int类型的确切长度,但规定了与它相关的整型类型长度的大小关系,以此既支持不同平台,又避免不同平台带来类型长度出现long比int还小的混乱。但,不得不说,在不同平台、不同编译器下,C语言类型长度产生的问题一直存在。

  • Swift/Go/Rust都有通用整型和确定长度的整型两种,据情况选择。

  • 仓颉明确区分出Int32和Int64类型。

int类型和硬件寄存器有多统一?

Intel i386 32位设计的硬体,默认的数据寄存器、地址寄存器都是32位,即一次数据操作或者地址访问以32位为最优。C语言程序为了更好适应这种情况,大部分32位编译器都将int类型设计成4字节。这样,一个int就直接对应寄存器EAX或EBX的长度,资源使用上不会出现浪费。

了解更多:

数据类型长度是编译器决定的?

数据类型长度是编译器决定的?

没错。不要看硬件和OS是32位或者64位,数据类型并不是直接与它们相关,而是编译器决定的。大部分编译器都会提供类似type_size的函数,以返回不同数据类型的大小,这个大小和编译器自身有关。


若文章对您有帮助,欢迎关注。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/58764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024最新Twitter养号全面指南,品牌起号必看!

X (Twitter)作为活跃用户数以亿计的社交媒体平台,用户数依然在不断增长,其中巨大的流量吸引着个人用户与品牌和卖家。 Twitter养号是有必要的,有大量案例表明养好号,可以大幅度降低账号被冻结的几率,并提升账号的稳定…

百度如何打造AI原生研发新范式?

👉点击即可下载《百度AI原生研发新范式实践》资料 2024年10月23-25日,2024 NJSD技术盛典暨第十届NJSD软件开发者大会、第八届IAS互联网架构大会在南京召开。本届大会邀请了工业界和学术界的专家,优秀的工程师和产品经理,以及其它行…

基于大语言模型(LLM)自主Agent 智能体综述

近年来,LLM(Large Language Model)取得了显著成功,并显示出了达到人类智能的巨大潜力。基于这种能力,使用LLM作为中央控制器来构建自助Agent,以获得类人决策能力。 Autonomous agents 又被称为智能体、Agent。指能够通过感知周围环境、进行规划以及执行动作来完成既定任务。…

电脑怎么设置开机密码:保障个人信息安全的第一步

在数字化时代,个人信息的安全至关重要。电脑作为我们日常工作和生活中不可或缺的设备,存储了大量的私人数据和敏感信息。为了防止未经授权的访问,设置开机密码是保护个人隐私和信息安全的基本措施之一。本文将详细介绍如何在不同操作系统下为…

分析 std::optional 的使用与常见错误

文章目录 引言常见错误及解决方案1. 错误使用 std::optional 变量进行算术运算2. 错误检查 std::optional 是否有值3. 忽视 std::optional 的默认值 结论 引言 std::optional 是 C17 引入的一个模板类,用于表示可能有也可能没有值的情况。它特别适用于函数返回值&a…

DB-GPT系列(二):DB-GPT部署(镜像一键部署、源码部署)

一、简介 DB-GPT 是一个开源项目,其将大语言模型 LLM 与数据库紧密结合。该项目主要致力于探索如何让预训练的大规模语言模型(例如 GPT)能够直接与数据库进行交互,从而生成更为准确且信息丰富的回答。 DB-GPT部署后能否直接使用…

8051汇编执行RET函数返回后总是复位到ORG 00H的位置,问题如何解决?

8051汇编执行RET函数返回后总是复位到ORG 00H的位置,问题的解决方法 新手写8051汇编时,如果RESET一开始时就直接使用LCALL,则RET返回时会出错,每次都跳到程序开始的位置。因为LCALL和RET需要依靠堆栈存储程序指针,而此…

Web组件之 Listener (监听器)

文章目录 1.1 Listener概述1.2 Listener快速入门① xml版本② 注解版本 1.3 案例:模拟spring框架 1.1 Listener概述 ​ JavaWeb 中的监听器是监听 ServletContext HttpSession HttpServletRequest 三个数据域对象创建和销毁以及监听数据域对象中数据的变化&#xf…

【论文翻译】IJCAI 2019 | Graph WaveNet:用于深度时空图建模的Graph WaveNet

论文题目Graph WaveNet for Deep Spatial-Temporal Graph Modeling作者团队Zonghan Wu, Shirui Pan, Guodong Long, Jing Jiang, Chengqi Zhang机构澳大利亚悉尼科技大学人工智能中心 (UTS) 和 澳大利亚莫纳什大学发表会议IJCAI 2019论文链接https://www.ijcai.org/proceedings…

Java数组的定义与使用

今天来学习Java数组的定义与使用 目录 1 数组的基本概念1.1 数组的意义1.2 数组的定义1.3 数组的创建及初始化1.3.1 数组的创建1.3.2 数组的初始化 1.4 数组的使用1.4.1 数组中的元素访问1.4.2 遍历数组运行结果运行结果 2 数组是引用类型2.1 初始 JVM 的内存分布2.2 基本类型变…

https://tieba.baidu.com/p/9247698007

微深节能的库区智能化无人天车管理系统结合了格雷母线技术,提供了一种高精度的定位解决方案。格雷母线系统能够实现连续或断续的位置检测,精度高达≤5mm,适用于需要高精度作业的场景,如货物搬运和堆放。这种系统通过实时交互&…

创作里程碑:纪念日回顾与展望

目录 机缘:创作者初心 1. 实战项目 2. 日常学习 3. 技术交流 4. 总结 收获:创作者动力 创作与工作、学习的关系 憧憬:职业规划与创作规划 职业规划: 创作规划: 机缘:创作者初心 回望自己踏上…

二叉树计算

#题目描述: 给出一个二叉树如下图所示: 6/ \7 9\ / -2 6 请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。 20(7-296)/ \-2 6\ / 0 0 左子树表示该节点左侧叶子节…

软考(中级-软件设计师)数据库篇(1101)

第6章 数据库系统基础知识 一、基本概念 1、数据库 数据库(Database ,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和扩展…

go-zero 的使用

目录 1. 生成 user api 服务 2. 生成 user rpc 服务 3. 生成 user model 模型 4. 编写 user rpc 服务 1 修改配置文件 user.yaml 2 添加 user model 依赖 3 添加用户登录逻辑 Login 5. 编写 user api 服务 1 修改配置文件user.yaml 2 添加 user rpc 依赖 3 添加用户…

基金委:目前资助率过低,危害大,应提升至30~35%,增大青年、面上项目经费

国家基金委 近日,国家基金委发表题为《近十年 NSF资助率和资助强度上升 对我国科学基金资助工作的启示》文章,文章基于近十年 NSF总体资助变化,提出对我国科学基金资助工作启示,阐述了国家自然基金项目资助率下降情况、危害,并提…

ubuntu禁止自动更新设置

背景概述 从CentOS变更到uBuntu或多或少会遇到一些坑,今天分享一个。 在Ubuntu系统中,自动更新是一个既方便又引发争议的功能。它可以帮助用户保持系统的最新状态,但有时也会因为自动更新而导致系统不稳定或不兼容。 Ubuntu系统的自动更新主…

NPM 包开发与优化全面指南

前言 Hey, 我是 Immerse系列文章首发于【Immerse】,更多内容请关注该网站转载说明:转载请注明原文出处及版权声明! 1. 理解 NPM 包的结构 1.1 package.json 文件:包的核心 package.json文件是 NPM 包的中央配置,定…

学Linux的第六天

目录 账户和组管理 工作组管理 创建工作组groupadd 修改工作组groupmod 添加/删除组成员gpasswd 删除工作组groupdel 查看用户登录系统的情况 users查看当前登录系统的用户 last命令 lastlog命令 w命令 显示登录到系统的用户信息 who命令 Linux文件系统权限 文件…

来康生命科技有限公司心率监测解决方案在健身房与康养机构的应用探索

引言 随着科技的日新月异,智能健康服务正逐步成为现代健康管理不可或缺的一环。来康生命科技有限公司,凭借其在智能物联集成交互领域的自主创新能力,推出了一款集蓝牙物联网、蓝牙手环、数据云与管理终端于一体的心率监测解决方案。此方案专…