|
|
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”,并且两者都包含
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |