unsigned int 定义的变量 在 电脑的 64 位系统中 和 32 位 cortex-m0 和 8 位的 51 单片机

各平台 unsigned int 的字节数对比

unsigned int 的字节长度不由unsigned int 定义的变量 在 电脑的 64 位系统中 和 32 位 cortex-m0 和 8 位的 51 单片机 分别是用多少个字节表示的编写代码的电脑位数决定,而是由目标运行平台的架构 + 对应编译器的标准约定决定,以下是三类平台主流编译器的默认实现:

表格

目标平台 架构位数 主流编译器 unsigned int 字节数 位数
64 位电脑(x86_64) 64 位 GCC / Clang / MSVC 4 字节 32 位
32 位 Cortex-M0 32 位 arm-none-eabi-gcc / Keil MDK / IAR 4 字节 32 位
8 位 51 单片机 8 位 Keil C51 / SDCC 2 字节 16 位

说明

  1. 64 位电脑系统 无论是 Windows(LLP64 模型)、Linux 还是 macOS(LP64 模型),主流编译器都保持 int 为 32 位(4 字节),64 位仅体现在指针、long 等类型上,这是行业通用惯例。

  2. 32 位 Cortex-M0 Cortex-M0 属于 ARM 32 位架构,遵循 ARM AAPCS 调用约定,标准 int 固定为 32 位(4 字节),同系列所有 Cortex-M3/M4/M7 均遵循此规则。

  3. 8 位 51 单片机 51 是 8 位内核,为了兼顾运行效率与数据范围,Keil C51 等编译器将 int 定义为 16 位(2 字节);如果需要 32 位无符号整型,需使用 unsigned long(占 4 字节)。

  4. C 标准背景 C 语言标准仅规定 int 的最小取值范围不小于 16 位(即至少 2 字节),具体字节数由编译器和目标架构共同定义,上述为各领域的工业界默认标准。

相关推荐
幼儿园蛋小黑2 小时前
单片机数码管LED灯独立按键中断定时器综合实战
单片机·嵌入式硬件
自小吃多3 小时前
PCB Editor软件复制、改变、删除操作笔记
笔记·嵌入式硬件
数字新视界4 小时前
数据中心基础设施管理系统发布新版本,助力企业云化转型
嵌入式硬件·物联网·数据中心·数据中心基础设施管理·dcim管理系统
SKH.4 小时前
单片机(1)
单片机·嵌入式硬件
llilian_164 小时前
小切口解决大问题:时序校准场景下的标准时间间隔脉冲信号发生器应用方案
功能测试·单片机·嵌入式硬件·51单片机
三块石头1015 小时前
车载ADC避坑:为什么ADC采集值偏低?
经验分享·stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程
jianqiang.xue5 小时前
ESP-IDF保姆级入门39|固件安全与安全启动全解:签名校验/Flash加密/防回滚/OTP密钥/知识产权保护,掌握工业级固件安全防护体系
单片机·物联网·esp32
llilian_165 小时前
时间统一系统 高精度时统设备选购避坑指南 授时系统
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机
en.en..5 小时前
sizeof与strlen的区别(附UDP网络编程实战坑点)
单片机·嵌入式硬件
AOI小白新手上路5 小时前
韦东山IMX6ULL快速入门路线
嵌入式硬件