我不明白为什么在预编译的标题中没有使用标题保护...任何想法?
答案 0 :(得分:3)
因为"stdafx.h"
必须是{strong>首先包含在.cpp
个文件中,而不是其他任何地方。
答案 1 :(得分:3)
如果你所做的只是包含其他标题,则没有必要。如果这些文件不能多次包含,他们将拥有自己的标题保护。除非您使用错误,否则stdafx.h
本身并不关心它包含多少次。
答案 2 :(得分:1)
通常,每个cpp文件只包含一次stdafx.h作为第一个语句,通常,其他文件都不会包含它。因此,递归包括stdafx.h的可能性很小,因此包含守卫的“不必要”。
我仍然建议使用一个,以防万一,或者可能使用文件顶部的#pragma once
。
答案 3 :(得分:1)
我不知道预编译头的代码,但我猜它包含一个“#pragma once”,它具有相同的效果但只适用于VS(至少它不是标准的)。我记得向导使用这些文件创建了MFC文件。