c语言中各种数据类型的长度

在32位平台和64位平台上,同一种数据类型可能有不同的数据长度:

类型 32位平台 64位平台
char 1 1
short 2 2
int 4 4
long 4 8
long long 8 8
float 4 4
double 8 8
size_t 4 8
ssize_t 4 8

看到没,

从上面的结果可以看到不同,所以不要假定上表内颜色背景行的数据长度,因为它是会变化的。

因为系统的函数会返回上述的这些值,所以必须知道他们的大小并进行相应的防错性转换。而另外的情况,你需要跨不同平台固定数据长度数据类型的话,可以使用一些定长的数据类型,这样子就不会混淆了,类似:

int8_t   int16_t   int32_t   int64_t

uint8_t   uint16_t   uint32_t   uint64_t

原文地址:https://www.cnblogs.com/litifeng/p/7730263.html