size_t 是否仅在 C++ 标准或 C 标准中?
我在定义 size_t 的“/usr/include”树中找不到 C 标头。
如果它不在 C 标准中,那么 GCC 是否只是在做一些魔术来使事情正常进行?
谢谢,陈兹
size_t
被定义在两个<stddef.h>
和<stdlib.h>
来自 C99 草案:
7.17 常用定义<stddef.h>
标准头文件中定义了以下类型和宏<stddef.h>
。一些也在其他标题中定义,如其各自的子条款中所述。
类型是 [- snip -]
size_t
这是sizeof
运算符结果的无符号整数类型;[-剪断-]
size_t 来自 C 标准库
它被声明在
#include <stddef.h> //For C
#include <cstddef> //For C++
$grep -R -P "typedef.*\s+size_t;" /usr/include/ 2> /dev/null
将为您提供定义 size_t 的文件列表
size_t 在C 的stdlib.h中(或 C++ 中的 cstdlib.h )。
它在 ansi c 的 string.h 中定义。