在.c文件中包含警卫的目的

use*_*118 2 c include-guards header-files c-preprocessor

我一直在C语言的源文件的开头看到这样的代码

#ifndef _INCLUDE_GUARDS_C
#define _INCLUDE_GUARDS_C

main()
{

}

function1()
{
}

#endif

function2()
{
}
Run Code Online (Sandbox Code Playgroud)

我对这个目的感到困惑..?

我知道包含警卫是否在头文件中定义,但是

  1. 这些包括源文件中的警卫的目的是什么?和

  2. 为什么在包含警戒之外定义function2()?

Pot*_*ter 6

将包含保护放在C或C++非标头源文件中没有任何好处.

我已经从零开始实施了一个预处理器,并且研究了一个人可以做到的保护,这完全没有意义.

至于守卫之外的功能,对我来说看起来很邋.. 或者,有时当某人有魔法咒语时,他们不确定何时适用,所以他们随机应用它.