单片机/C语言八股:(五)32/64 位系统中,C/C++各变量类型所占字节数

上一篇 下一篇
volatile 和 static 关键字

在 32 位和 64 位系统中,C 语言中各基本数据类型的大小并不完全由"32/64 位"决定 ,而是由 编译器 + 操作系统 + ABI(应用二进制接口) 共同决定。C++ 中基本数据类型的大小规则与 C 语言在相同平台和编译器下完全一致 。其他编程语言(如 Java、Python)则通常有固定或抽象化的类型大小

1)总结表格

常见模型(以主流平台为例):

类型 32 位系统(如 x86 Windows/Linux) 64 位系统(LLP64 模型,Windows) 64 位系统(LP64 模型,Linux/macOS)
char 1 字节 1 字节 1 字节
short 2 字节 2 字节 2 字节
int 4 字节 4 字节 4 字节
unsigned int 4 字节 4 字节 4 字节
long 4 字节 4 字节 8 字节
unsigned long 4 字节 4 字节 8 字节
long long 8 字节 8 字节 8 字节
float 4 字节 4 字节 4 字节
double 8 字节 8 字节 8 字节
指针 (void*) 4 字节 8 字节 8 字节

关键区别:

  • Linux/macOS 64 位 使用 LP64 模型long 和指针是 8 字节。

  • Windows 64 位 使用 LLP64 模型 :只有 long long 和指针是 8 字节,long 仍是 4 字节!

2)如何在 C 中查看实际大小?

c 复制代码
#include <stdio.h>
int main() {
    printf("int: %zu\n", sizeof(int));
    printf("long: %zu\n", sizeof(long));
    printf("void*: %zu\n", sizeof(void*));
    return 0;
}

相关推荐
探数API小喇叭7 分钟前
基站查询 API 怎么用?LAC、CELLID 参数详解与实战】
java·开发语言·api·基站定位
Mr.Lu ‍9 分钟前
C++开发,使用openCV API对图片进行压缩
开发语言·c++·opencv
大鹏的NLP博客9 分钟前
ONNX Runtime CUDA 推理优化实战:破解 C++ 比 Python 慢 28 倍的假象
c++·onnx·推理优化
z落落10 分钟前
C# WinForm NModbus 串口通信+WinForm Modbus4 串口通信
开发语言·单片机·c#
Mojitocean13 分钟前
Win开发环境配置(持续更新)
开发语言·python
CoderIsArt34 分钟前
C#环境中部署MQTT客户端
开发语言·c#
HugoStudio_SWAN1 小时前
【按键反馈】C++ 实现键盘烟花秀
开发语言·c++·学习·程序人生
间歇性努力持续性发呆的野生快乐选手1 小时前
二分模板(整型,浮点型)
数据结构·c++·算法
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】DeepSeek API 基础概述
c++·人工智能·学习·ai·面试·deepseek
AI 编程助手GPT1 小时前
Bun 1.4 正式发布:从 Zig 改写为 Rust,内置浏览器、图片处理和并行测试
开发语言·人工智能·后端·ai·chatgpt