size_t仅在C++中吗标准还是C标准?
size_t 仅在 C++ 标准中还是 C 标准中?
我在“/usr/include”树中找不到定义 size_t 的 C 标头。
如果它不在 C 标准中,那么 GCC 是否只是做了一些魔法来使事情正常工作?
谢谢, 陈兹
Is size_t only in C++ standard or C standard as well?
I cannot find a C header in the "/usr/include" tree that defines size_t.
If it is not in the C std, is GCC just doing some magic to make things work?
Thanks,
Chenz
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
size_t
在
和
中定义size_t
is defined in both<stddef.h>
and<stdlib.h>
来自 C99 草案:
7.17 通用定义
以下类型和宏在标准头文件
中定义:
。一些也在其他标头中定义,如各自子条款中所述。
类型为 [-snip-]
<前><代码>size_t
这是
sizeof
运算符结果的无符号整数类型; [-snip-]From C99 draft:
7.17 Common definitions
<stddef.h>
The following types and macros are defined in the standard header
<stddef.h>
. Someare also defined in other headers, as noted in their respective subclauses.
The types are [-snip-]
which is the unsigned integer type of the result of the
sizeof
operator; [-snip-]size_t来自C标准库,
它的声明在
size_t is from the C standard library
It is declared in
$ grep -R -P "typedef.*\s+size_t;" /usr/include/2> /dev/null
将为您提供定义 size_t 的文件列表
$
grep -R -P "typedef.*\s+size_t;" /usr/include/ 2> /dev/null
will give you a list of files that define size_t
size_t 位于 C 语言的 stdlib.h 中(或 C++ 中的 cstdlib.h) 。
size_t is in stdlib.h for C (or cstdlib.h in C++).
它在ansi c 的string.h 中定义。
It is defined in string.h in ansi c.