|
1
13
维基百科有你所有的答案,很容易找到
它更深入地研究了 article . 如果你真的很感兴趣,我建议你把它读完,而不仅仅是上面的宣传语。 |
|
|
2
7
|
|
|
3
5
虽然pragma-once在许多方面优于ifdef-guards,但它有一个主要缺陷:它基于文件系统路径:它使用两个不同(绝对)路径也是两个不同文件的基本假设。不幸的是,这并不总是正确的。 虽然你不太可能遇到这个问题,但这是值得注意的。 |
|
4
3
关于这方面的更多背景:
|
|
|
5
2
就性能而言,我没有对其进行测量,但据广泛报道,编译器识别出包含保护习语的代码,并且不重新打开/重新处理使用它的文件(因此将它们视为使用过的代码)。
除了潜在的性能优势(可能不存在),我很少看到
如果有证据表明
也就是说-我希望C被定义为只包含一次头-除非调用了某种机制来指示每次包含头时都应该处理它。你想要这种行为的时候是遥远的,远远超过了你不想要的时候(而我仍然时不时地遇到没有警卫或
|
|
|
6
1
AS Dan McG 说,它们几乎是一样的。但我不建议使用pragma,除非在cant-exchant(如pragma部分)中,它只会使代码更加非标准。 而且没有功能/性能问题。因为这是编译时间。它 可以 增加编译时间,但我没有体验到任何不同! |
|
|
7
1
如果你对当你发现你的应用或库在你尝试将它移植到不同的平台时,改变你的每一个头文件的前景感到满意,那么这可能是一个不错的选择。
否则,坚持
|
|
|
Daniel Viaño · 将函数移动到不同的文件 8 年前 |
|
|
Trojax · 编译多个。c和。h文件 8 年前 |
|
Stevoisiak · 为什么#包含打破全局变量? 9 年前 |
|
|
jaxonjma · 在另一个JSP中动态发送并包含JSP 9 年前 |