无符号整数与大小\u t

我注意到,现代C和C++代码似乎使用了 SiZeSt<,而不是 int >代码>未签名int >代码>几乎无处不在——从C字符串函数到STL的参数。我很好奇这其中的原因以及它带来的好处

size\u t类型是无符号整数类型,它是sizeof运算符(以及offsetof运算符)的结果,因此它保证足够大,可以包含系统可以处理的最大对象的大小(例如8Gb的静态数组)

size\u t类型可能大于、等于或小于unsigned int,编译器可能会对其进行假设以进行优化

您可以在C99标准第7.17节(其草稿以pdf格式在互联网上提供)或C11标准第7.19节(也可作为pdf草稿提供)中找到更精确的信息

发表评论