4

size_t 是否仅在 C++ 标准或 C 标准中?

我在定义 size_t 的“/usr/include”树中找不到 C 标头。

如果它不在 C 标准中,那么 GCC 是否只是在做一些魔术来使事情正常进行?

谢谢,陈兹

4

6 回答 6

5

size_t被定义在两个<stddef.h><stdlib.h>

于 2010-03-30T18:29:48.560 回答
4

来自 C99 草案:

7.17 常用定义<stddef.h>

  1. 标准头文件中定义了以下类型和宏<stddef.h>。一些也在其他标题中定义,如其各自的子条款中所述。

  2. 类型是 [- snip -]

    size_t
    

    这是sizeof运算符结果的无符号整数类型;[-剪断-]

于 2010-03-30T18:37:22.113 回答
2

size_t 来自 C 标准库

它被声明在

#include <stddef.h>  //For C
#include <cstddef>   //For C++
于 2010-03-30T18:30:55.957 回答
1

$grep -R -P "typedef.*\s+size_t;" /usr/include/ 2> /dev/null

将为您提供定义 size_t 的文件列表

于 2012-03-04T16:51:10.457 回答
0

size_t 在C 的stdlib.h中(或 C++ 中的 cstdlib.h )。

于 2010-03-30T18:29:59.847 回答
0

它在 ansi c 的 string.h 中定义。

于 2010-03-30T18:30:45.937 回答