1
16
通常使用与文件名对应的ifndef/define来保护include文件。这不会阻止文件被再次包含,但它确实阻止了内容(在ifndef内部)被使用,并再次触发递归包含。
|
2
8
好吧,为了完整起见,我先引用tvanfosson的回答:
然而,include-guards并不是用来解决循环依赖问题的,它们是用来防止多个包含的,这是完全不同的。
所以这将有效地防止双重夹杂。。。
解决方案是以某种方式消除这种循环依赖的需要。
|
3
0
既然你把你的问题贴在了c++标签和c下,那么我假设你使用的是c++。在c++中,还可以使用 #pragma一次 编译器指令:
2.小时:
Edit:我认为c编译器也支持这个指令,但从未尝试过,而且,在我见过的大多数c程序中,include-guard是标准的(可能是由于编译器在处理pragma-once指令时的限制?) |
4
0
圆形夹杂物必须 消除 1.小时:
2.小时:
主c:
这将在编译时抛出“不可能”错误,因为“2.h”由于包含保护而未能包含“1.h”,并且两者都包含
|
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |