为什么stdafx.h中不需要头文件保护?

3

我不明白为什么预编译头文件中不使用头文件保护... 有任何想法吗?

4个回答

3
由于"stdafx.h"必须是.cpp文件中的第一个包含文件,不能放在其他任何地方。

3
如果您只是包含其他头文件,那么没有必要。如果这些文件不能被多次包含,则它们将有自己的头文件保护。除非您使用不当,否则stdafx.h本身不关心它被包含了多少次。

1
通常情况下,stdafx.h 只会在每个 cpp 文件中被包含一次,作为第一个语句,并且通常不会有其他文件包含它。因此,递归包含 stdafx.h 的可能性很小,因此无需使用 include guard。
我仍然建议使用 include guard,以防万一,或者在文件顶部使用 #pragma once。

1

我不知道预编译头文件的代码,但我猜测它包含了一个“#pragma once”,它具有相同的效果,但只在VS中有效(至少不是标准)。我记得向导使用这些创建MFC文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接