16位平台
char
short
int
long
指针
32位平台
char
short
int
long
long long 8个字节
指针
64位平台
char
short
int
long
long long 8个字节
指针
2.为了保证平台的通用性,程序中尽量不要使用long数据库型
3.编程中要尽量使用sizeof来计算数据类型的大小,如:int *p = (int*)malloc(sizeof(int)*100);而不要int *p = (int *)malloc(400);
4.使用int时也可以使用intptr_t来保证平台的通用性,它在不同的平台上编译时长度不同,但都是标准的平台长度,比如64位机器它的长度就是8字节,32位机器它的长度是4字节,定义如下:#if __WORDSIZE == 64
typedef longint
#else
typedefint
#endif
5.ssize_t 和size_t分别是unsigned和signed size of computer wordsize。它们也是表示计算机的字长,在32位机器上是int型,在64位机器上long型,从某种意义上来说它们等同于intptr_t和uintptr_t。它们在stddef.h里面定义。需要注意的是socket的accept函数在有些操作系统上使用size_t是不正确的,因为accept接收的int*类型,而size_t可能是long int 类型。后来BSD使用sock_t来替代它