C-double、long、unsigned、int、char类型数据所占字节数

本文详细介绍了在不同位数的编译器环境下,C语言中基本数据类型如char、int、long等所占用的字节数及其变化规律,并强调了这些类型在不同编译器下可能存在的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在 C 语言中 double, long, unsigned, int, char 类型数据所占字节数和机器字长及编译器有关系, 所以, int, long int, short int 的宽度都可能随编译器而异.

    但有几条铁定的原则 (ANSI/ISO 制定的): 

    1. sizeof(shot int) <= sizeof(int)

    2. sizeof(int) <= sizeof(long int)

    3. short int 至少为 16 位 (2字节)

    4. long int 至少应为 32 位

    unsigned 是无符号的意思.

例如:

16 位编译器

char: 1 字节    char*(即指针变量): 2 字节    short int: 2 字节    int: 2 字节    unsigned int: 2 字节    float: 4 字节    double: 8 字节    

long: 4 字节    long long: 8 字节    unsigned long: 4 字节

32 位编译器

char: 1 字节    char*(即指针变量): 4 字节(32 位的寻址空间是 2^32, 即 32 个 bit, 也就是 4 字节. 同理 64 位编译器)    

short int: 2 字节    int: 4 字节    unsigned int: 4 字节    float: 4 字节    double: 8 字节    

long: 4 字节    long long: 8 字节    unsigned long: 4 字节

64 位编译器

char: 1 字节    char*(即指针变量): 8 字节    short int: 2 字节    int: 4 字节    unsigned int: 4 字节    float: 4 字节    double: 8 字节    

long: 4 字节    long long: 8 字节    unsigned long: 8 字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值