回答

1

通常情況下,stdafx.h將作爲第一個語句每個cpp文件只包含一次,通常情況下,沒有其他文件會包含它。因此,遞歸包含stdafx.h的機會很小,因此包含守衛的「不必要」。

我仍然建議使用一個,以防萬一,或可能使用文件頂部的#pragma once

2

因爲"stdafx.h"必須是首先包含在.cpp文件,而不是其他地方。

1

我不知道預編譯頭的代碼,但我想它包含一個「#pragma once」,它具有相同的效果,但只適用於VS(至少它不是標準的)。我記得嚮導使用這些創建了MFC文件。

3

如果你所做的只是包含其他頭文件,那就沒有必要。如果這些文件不能多次包含,他們將擁有自己的標頭警衛。 stdafx.h本身並不關心它被包含多少次,除非你錯誤地使用它。

+1

+1,好點。完全沒有想到這一點。 – Xeo 2011-05-12 02:09:40

相關問題