- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
3小时前关门了。
Improve this question
很遗憾我不得不编写一些Windows代码,我希望尽可能地将它与Linux部分分开。
有一次,我需要检查Windows代码中的NULL,但我不想包括stdio.h
或stdlib.h
。
我强烈怀疑NULL在windows.h
中的某个地方被定义了,但是我找不到页面,我找到了this,这很有趣,但是没有告诉我想知道什么。
1条答案
按热度按时间jk9hmnmh1#
NULL
在标准C报头stddef.h
中定义,句号。例如,如果您在Windows中运行gcc/mingw port,您可以告诉任何不太好的IDE找到
NULL
的声明,并在stddef.h
中结束,其中显示#define NULL ((void *)0)
。也可以创建如下所示的源文件:
然后用
gcc main.c -H
编译,这将扩展所有的头依赖项,所以你会看到哪个头包含了哪些其他头,你会得到一大堆头,你会注意到stddef.h
间接地包含在2-3个不同的位置。结论:
NULL
* 不是 * 由windows. h或任何其他Windows特定的头文件定义的,您应该直接包括在内。如果您需要使用
NULL
,那么正确的方法是使用#include <stddef.h>
,而不考虑操作系统。