gcc - c - 什么定义了类型的大小?

133 0

ISO C标准说明:


sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)



我在Linux Mint (19.1 )上使用GCC-8,long int的大小是8

我正在使用一个使用GCC 7和编译器64位的应用,long int的大小为4编译器或操作系统是否定义了long int的大小?

时间: 原作者:

131 0

这是由实现决定的。

实现(编译器和标准库)定义longint和所有其他类型的大小。

只要它们符合标准给定的约束,实现就可以做出所有类型(可能除了指针以外)的决定。

原作者:
127 2

C编译器决定如何根据编译器和ABI来调整变量的大小,编译器编写人员考虑过使用的库能力(它们支持64位)和ABI 。

C语言委员会和IEEE STANDARDs允许编译器编写有关整数类型大小的方法。

原作者:
...