【发布时间】:2013-11-21 11:29:36
【问题描述】:
我经常在 C 源文件的开头看到这样的代码
#ifndef _INCLUDE_GUARDS_C
#define _INCLUDE_GUARDS_C
main()
{
}
function1()
{
}
#endif
function2()
{
}
我对这样做的目的感到困惑..?
我知道头文件中是否定义了包含保护,但是
在源文件中包含这些保护的目的是什么?和
为什么 function2() 在包含保护之外定义?
【问题讨论】:
-
在源文件(.c)而不是在头文件(.h)中询问这些保护的目的
-
除了增加您获得 P45 的可能性之外,没有什么可以阻止您包含来自其他源文件的源文件。在这种情况下可以使用多重包含保护。
-
'...一直在看代码'是相当奇怪的序言,不得不说。
-
问题代码中包含保护似乎没有任何目的......也就是说,它是一个如何以错误方式做事的例子。所以 1. 像这样使用它们没有任何目的,并且 2. 因为示例不是 C 代码应该如何完成的。
标签: c header-files c-preprocessor include-guards