上一篇下一篇volatile 和 static 关键字在 32 位和 64 位系统中C 语言中各基本数据类型的大小并不完全由“32/64 位”决定而是由编译器 操作系统 ABI应用二进制接口共同决定。C 中基本数据类型的大小规则与 C 语言在相同平台和编译器下完全一致。其他编程语言如 Java、Python则通常有固定或抽象化的类型大小。1总结表格常见模型以主流平台为例类型32 位系统如 x86 Windows/Linux64 位系统LLP64 模型Windows64 位系统LP64 模型Linux/macOSchar1 字节1 字节1 字节short2 字节2 字节2 字节int4 字节4 字节4 字节unsigned int4 字节4 字节4 字节long4 字节4 字节8 字节unsigned long4 字节4 字节8 字节long long8 字节8 字节8 字节float4 字节4 字节4 字节double8 字节8 字节8 字节指针 (void*)4 字节8 字节8 字节关键区别Linux/macOS 64 位使用LP64 模型long和指针是 8 字节。Windows 64 位使用LLP64 模型只有long long和指针是 8 字节long仍是 4 字节2如何在 C 中查看实际大小#includestdio.hintmain(){printf(int: %zu\n,sizeof(int));printf(long: %zu\n,sizeof(long));printf(void*: %zu\n,sizeof(void*));return0;}