繁体   English   中英

.c文件中包含防护的目的

[英]Purpose of include guards in .c file

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

#ifndef _INCLUDE_GUARDS_C
#define _INCLUDE_GUARDS_C

main()
{

}

function1()
{
}

#endif

function2()
{
}

我对这个目的感到困惑。

我知道头文件中是否包含了包含防护,但是

  1. 这些在源文件中包含防护的目的是什么?

  2. 为什么function2()是在include防护之外定义的?

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

我从头开始实现了预处理器,并研究了尽可能多的人看守,这完全没有意义。

至于警卫之外的职能,对我来说似乎很草率。 或者,有时当某人具有魔咒时,他们不确定该何时应用,因此他们会随机应用。

老问题,但是...

我认为可以在测试代码时使用它。 测试时,您需要访问标头中未定义的局部函数,因此您需要包括.c文件...是的,这很丑陋。 是的,您有更好的选择

对于标头中未定义的功能,您不需要包含保护。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM