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 小时前
芯参谋(38):NAND_MCP_电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
嵌入式学习菌2 小时前
FreeRTOS 中断管理实战:BASEPRI 寄存器实验
单片机·嵌入式硬件
HRTOS3 小时前
HRTOS:一个名字背后的目标——不断逼近硬实时
经验分享·单片机·系统架构·51单片机
UrSpecial5 小时前
GPIO 是什么?
单片机·嵌入式硬件
剑指offer.7 小时前
ARM裸机开发-SPI
arm开发·嵌入式硬件·嵌入式·arm
修船大队长7 小时前
配置接受报文每个报文对应一个mailbox配置流程记录
网络·单片机·mcu
搁浅小泽9 小时前
二极管选型技术规范
单片机·嵌入式硬件·汽车
搁浅小泽9 小时前
电感选型技术规范
单片机·嵌入式硬件·汽车
..Dauntless..10 小时前
【stm32】串口——在MCU内部的工作过程
stm32·单片机·嵌入式硬件
lzqrzpt10 小时前
临沂LED驱动电源工程选型标准与工艺对比解析
python·单片机·嵌入式硬件·物联网