事实上,如果我将stdlib.h
包含到我的程序的每个文件中,并且我没有收到重新定义错误。所以,答案是肯定的。对?标准标题/库中是否包含警卫?
我在看libxml2
源代码,并在HTMLparser.c
有这一部分:
#include <string.h>
#ifdef HAVE_CTYPE_H
#include <ctype.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
我的问题是:为什么在这里使用include guards
?
'include guards'就像这样:'#ifndef XXX #define XXX #include#endif' –
MYMNeo
看到这个http://en.wikipedia.org/wiki/Include_guard。这将解释为什么需要包括警卫 – MYMNeo