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

相关推荐
糖糖单片机设计6 小时前
基于 STM32 与中移 OneNet 的智慧电梯监控平台系统
stm32·单片机·嵌入式硬件·51单片机·语音识别
创界工坊工作室9 小时前
55-基于STC89C52宠物智能饲喂控制系统设计
stm32·单片机·嵌入式硬件·51单片机·proteus·宠物
极客 - L U12 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
AMASENSYS艾马斯13 小时前
变频器滤波器选型与EMC合规建议
驱动开发·单片机·其他·硬件工程·精益工程
码小文14 小时前
CAM350使用笔记(6)---Gerber文件铺铜间距检查
嵌入式硬件·cam350软件·cam350使用笔记
Yiran_G16 小时前
双频 Wi-Fi 6 + 蓝牙 5.4:无声讯通 WS8712 模组的开发与集成要点
网络·嵌入式硬件·物联网·智能家居
光子物联单片机16 小时前
ESP32传感器模块编程实践(一)DIY智能WIFI视频控制小车
嵌入式硬件·esp32·智能硬件·硬件
2501_9226395817 小时前
率能半导体 SS6628E直流双向马达驱动芯片:20V/7A,覆盖电子锁、玩具、无线充电、机器人四大应用场景
单片机·嵌入式硬件·硬件工程
硅基造物主17 小时前
STM32 从 0 到 1 做智能家居(五):工程结构与代码骨架
stm32·单片机·嵌入式硬件·智能家居
深圳老胡17 小时前
STM32F103 硬件 SPI 与软件 IO 模拟 SPI 最高速度差异详解
笔记·stm32·单片机·代码规范·1024程序员节