名字后的_t表示该符号是由现有数据类型typedef而来。
size_t :
//无符号整型(unsigned int (32位机下),在64位机下size_t为unsigned long int),size_t一般用来计数,
//它和socklen_t一样是为了增强程序的可移植性
typedef unsigned int uint32_t;
typedef unsigned long int uint64_t;
格式化输出:
uint16_t %hu
uint32_t %u
uint64_t %lu //无符号长整型(unsigned long int)
uint64_t %llu (unsigned long long int)
socklen_t:
//socklen_t必须要和当前机器的int类型具有一致的字节长度,可以看做int
//根据下面的图,不管是32/64位系统,socklen_t都是4字节
int在32位和64位下均为4字节。socklen_t是socket中server端accept函数的第三个参数的数据类型,由于规定该参数必须始终和int保持相同长度和类型,所以使用socklen_t。以前常使用size_t,这容易犯错,因为size_t在64位机是8字节,而int始终是4字节。