我不明白爲什麼在預編譯頭文件中不使用頭文件守護程序...任何想法?爲什麼在stdafx.h中不需要頭文件?
1
A
回答
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
相關問題
- 1. MSVC預編譯頭文件:哪些文件需要#include「stdafx.h」?
- 2. MPMoviePlayerLoadStateDidChangeNotification需要什麼頭文件?
- 3. 使用頭文件和StdAfx.h
- 4. 爲什麼我們使用`#include「stdafx.h」`而不是`#include <stdafx.h>`?
- 5. Ruby需要'文件'不起作用,但需要'./file'。爲什麼?
- 6. 爲什麼javah需要字節碼來生成JNI頭文件?
- 7. 爲什麼我不能在Ruby中需要'string.rb'文件
- 8. 爲什麼不需要在.h文件中聲明此方法?
- 9. 爲什麼我需要Default.aspx.designer.cs文件?
- 10. 爲什麼不需要document.getElementById?
- 11. StdAfx.h中的「Afx」是什麼?
- 12. 爲什麼ivars在iOS中不需要時可可需要?
- 13. 爲什麼要從csv文件頭不工作
- 14. 爲什麼我們在.class文件的開頭需要一個幻數?
- 15. 爲什麼JSONP在這裏不需要?
- 16. 除了頭文件你需要什麼來使用頭中定義的函數
- 17. 有什麼問題,需要在文件
- 18. 爲什麼需要
- 19. 爲什麼在PHP中需要class文件?
- 20. 爲什麼某些組件需要「需要UIExplorerBlock」和「需要UIExplorerPage」?
- 21. 頭文件中的結構1頭文件中需要2,我該怎麼做?
- 22. 靜態庫不需要頭文件?
- 23. Visual Studio - 爲什麼stdafx.h會嵌入
- 24. 爲什麼我無法#ifdef stdafx.h?
- 25. 使用HttpResponseCache.get時需要使用什麼頭文件
- 26. 爲什麼皮膚文件中的控件需要runat =「server」?
- 27. 爲什麼自定義TableViewCell不需要文件所有者?
- 28. 爲什麼運行python文件不需要執行權限?
- 29. 爲什麼在ListCellRenderer中需要removeAll()?
- 30. 爲什麼摩卡需要在devDependencies中?
謝謝,+1對所有 – aCuria 2011-05-12 02:58:55