为不同数据类型分配的内存是否取决于架构?

Pri*_*Raj 0 c

大家好,是为不同类型的变量分配的内存,说浮点数,int和char对于不同的架构是不同的?提前致谢.

Car*_*rum 5

这绝对是的情况下float,intchar可以在不同设备上不同大小的,是的.它是由C编译器定义的实现.对于真正可移植的代码,您可以依赖的是:

sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)
Run Code Online (Sandbox Code Playgroud)

那个sizeof(char) == 1.C99中有许多类型具有特定的位大小,如果您需要保持从架构到架构的可移植类型,那么这些类型可能对您有用.

编辑:我查看了规范中的信息.第5.2.4.2.1节"整数类型的大小"是您正在寻找的:

......实施定义的值的大小(绝对值)应等于或大于所示的值......

UCHAR_MAX         255 // 2^8 - 1
USHRT_MAX       65535 // 2^16 - 1
UINT_MAX        65535 // 2^16 - 1
ULONG_MAX  4294967295 // 2^32 ? 1
Run Code Online (Sandbox Code Playgroud)

等等...