c – size_t和std :: size_t之间的差异

size_t和std :: size_t在声明的位置,应该使用它们和任何其他区分特性方面有什么区别?
C的size_t和C的std :: size_t都是相同的。

在C中,它定义在< stddef.h>并且在C中,其定义在< cstddef>其内容与C头相同(参见下面的引文)。它定义为无符号整数类型的sizeof运算符的结果。

C标准在§17.7/ 2中说,

size_t which is the unsigned integer type of the result of the sizeof operator

和C标准说(关于cstddef头)在§18.1/ 3,

The contents are the same as the Standard C library header , with the following changes.

所以,是的,两者是一样的;唯一的区别是C在std命名空间中定义了size_t。

还请注意,上面的行还说“有以下更改”,这不是指size_t。它指的是由C做出的新的添加(大多数)到在同一个标​​题中定义的语言(不存在于C中)。

维基百科有关于size_t的范围和存储大小的非常好的信息:

Range and storage size of size_t

The actual type of size_t is
platform-dependent; a common mistake
is to assume size_t is the same as
unsigned int, which can lead to
programming errors,[3][4] when moving
from 32 to 64-bit architecture, for
example.

According to the 1999 ISO C
standard (C99), size_t is an unsigned
integer type of at least 16 bits.

其余的你可以从this page在维基百科阅读。

http://stackoverflow.com/questions/5813700/difference-between-size-t-and-stdsize-t

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c – size_t和std :: size_t之间的差异