如果我在我的代码中使用sizeof
运算符并使用size_t
,我是否必须包含stddef.h
?我没有包含stddef.h
,并且我的代码在使用 MVS2008 和 Borland C++ BuilderX 编译时没有警告。
非常感谢...
sizeof()
,虽然看起来像一个函数调用,但实际上是一个运算符和语言核心的一部分。不需要包含。
size_t
在各种标题中定义:stddef.h
、string.h
、stdlib.h
和stdio.h
. 包括其中任何一个都足以size_t
在您的代码中使用。
不,您可以包含一个标题,该标题又包含 stddef.h
size_t 定义应通过包含stdlib.h头文件提供给引用的代码片段。事实上,大多数实现并没有在这个文件中逐字定义它,而是 像 GNU C 编译器的标准库那样子包含文件stddef.h 。为应用程序代码直接包含 stddef.h 是完全有效的,因此可以在不需要或不需要此文件中的其他成员的情况下替换 stdlib.h。
在 c 中, for 的定义来自size_t
以下几个标题之一:stddef.h
、stdio.h
、stdlib.h
、或。string.h
time.h
wchar.h
编译器实现可以为此安排多种方式,但请注意,一种不能使用的方式是让编译器在背后为您包含这些头文件之一 - 这不是 C 编译器所允许的做(C++ 取消了这个限制,它允许包含任何标准头文件用于自己的目的)。