Gcc编译基本数据类型长度

本文详细对比了在GCC编译环境下,32位和64位编译器中各种基本数据类型的字节大小,包括char、short、int、long、long long、float、double、void、枚举类型及指针的大小,为程序员提供了关键的编译器行为参考。

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

1.以32bit编译(gcc -m32)

sizeof char =1
sizeof short =2
sizeof int =4
sizeof long =4
sizeof long long=8
sizeof float =4
sizeof double =8
sizeof void =1
sizeof enum type =4
sizeof void * =4
sizeof int =4
sizeof char
=4

2.以64bit编译(gcc -m64)

sizeof char =1
sizeof short =2
sizeof int =4
sizeof long =8
sizeof long long=8
sizeof float =4
sizeof double =8
sizeof void =1
sizeof enum type =4
sizeof void * =8
sizeof int =8
sizeof char
=8

### C++ 中 `int` 类型的不同长度解释 在不同的操作系统和编译环境下,C++ 的 `int` 数据类型长度可能会有所不同。以下是关于不同环境下的具体说明: #### 早期16操作系统中的 `int` 在此类环境中,`int` 占用2个字节的空间,取值范围是从 -32768 到 32767[^3]。 #### 发展至32操作系统后的变化 随着技术进步,在32系统里,`int` 被扩展为占用4个字节,这使得它可以表示更大的数值区间——即从 -2147483648 至 2147483647。此时,`long int` 和普通的 `int` 在存储空间上保持一致,都是四个字节。 #### 当代64操作系统的现状 对于现代的64计算平台而言,尽管整体架构发生了改变,但为了向后兼容以及性能考虑,大多数情况下 `int` 仍然维持着4字节不变。不过值得注意的是,在某些特定场景下(比如使用GCC编译器),当目标是针对64机器时,虽然 `int` 还是占据4字节,而 `long` 已经增长到了8字节,能够覆盖更广阔的正负数域(-9223372036854775808 ~ 9223372036854775807)。 ```cpp #include <iostream> #include <climits> // For INT_MAX and INT_MIN macros void showIntInfo() { std::cout << "Size of int: " << sizeof(int) * CHAR_BIT << "-bit\n"; std::cout << "Range of int: [" << INT_MIN << ", " << INT_MAX << "]\n"; } int main(){ showIntInfo(); } ``` 此代码片段展示了如何获取当前平台上 `int` 类型的具体信息,包括它的二进制宽及其能表达的最大最小值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值