已知数据类型的含义

std*_*all 3 c c++ linux-kernel

可能重复:
_t(下划线-t)后面的类型代表什么?

有谁知道time_t,uint8_t等代表什么't',它是"类型"吗?第二,为什么声明这种新类型,例如size_t,它不能只是一个int?

Col*_*lin 10

是的,t代表Type.

定义新类型的原因是它们将来可以改变.由于64位计算机已经成为常态,因此实现可以将位宽更改size_t为64位而不是仅仅32位.这是一种面向未来的程序.一些小型嵌入式处理器只能很好地处理16位数.它们size_t可能只有16位宽.

一个特别重要的可能是ptrdiff_t,它代表两个指针之间的差异.如果指针大小在未来的某个时间发生变化(例如64或128位),您的程序应该不在意.

typedef的另一个原因是风格.虽然那些size_t可能只是由

typedef int size_t;
Run Code Online (Sandbox Code Playgroud)

使用该名称size_t清楚地表明变量意味着某事物的大小(容器,内存区域等).