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 字节),具体字节数由编译器和目标架构共同定义,上述为各领域的工业界默认标准。

相关推荐
小渔村的拉线工1 小时前
1.HPM6E80 解析芯片整体工作原理和存储架构
单片机·嵌入式硬件·mcu·架构·hpm6e80
熙芯XiChip2 小时前
CAN与CANopen的本质区别
单片机
lilihewo3 小时前
Altium Designer 封装库的创建(分享pcb 3D封装库)
嵌入式硬件·51单片机
神罚天下ET4 小时前
典型arm位单片机启动流程(从上电到main.c)
c语言·arm开发·单片机
碧海银沙音频科技研究院4 小时前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
Zevalin爱灰灰5 小时前
模拟信号链电路——基于TL431的电压基准电路
单片机·嵌入式硬件
csdn杰哥6 小时前
瑞萨单片机开发教程[二十七] DTC 外部中断触发传输实验
单片机·嵌入式硬件·mongodb·瑞萨·ra6m5
zcmodeltech6 小时前
农业教学实训沙盘物联网控制系统设计:基于STM32与Modbus RTU的“感知-控制-实训”一体化方案
分布式·stm32·嵌入式硬件·物联网
Hello_Damon_Nikola7 小时前
LIS3DH从入门到精通_三轴加速度计实战指南
单片机·嵌入式硬件·3d