2016-03-02 33 views
0

好的。所以我有一個簡單的問題。如果我在錯誤的地方提問,請糾正我。我想問的是,爲什麼Visual Studio中給了我這樣的:Visual Studio中的C++頭文件

#include "stdafx.h" 


int main() 
{ 
    return 0; 
} 

每次我創建一個新項目? (我知道我可以選擇空項目,並通過自己添加礦.cpp文件,但我只是好奇。它說#include <stdio.h>#include <tchar.h>。那麼,什麼是它?使用它還是個什麼都好嗎?

而且PS - 爲什麼在main聲明沒有(int argc, char** argv)(我當然編碼在大學裏,我瞭解到,有可能是_tmain(int argc, _TCHAR* argv),創造VS東西的時候)

+4

這是一個Visual Studio的怪胎。它支持他們的預編譯頭文件。 'main'的參數是可選的 - 你可以根據需要添加它們,或者如果你不使用它們,可以忽略它們。 '_tmain'作爲程序入口點也是微軟的一個奇怪之處,而不是標準C++的一部分。 –

+1

你可以刪除'stdafx.h',然後你需要禁用預編譯頭文件 - > http://stackoverflow.com/questions/7261707/how-to-avoid-precompiled-headers –

回答

2

好了,所以我有一個簡單的問題? 。如果我在錯誤的地方問它,請糾正我。我想問的是,爲什麼Visual Studio給我這個: ...

嗯,它取決於您從嚮導中選擇的項目類型。看起來像控制檯項目的標準模板。

#include "stdafx.h" 

是嚮導用於任何類型的翻譯單元。它支持precompiled header optimizaton mechanism


爲什麼在主聲明沒有(int argc, char** argv)

因爲該模板提供了有效的main()條目例程定義的最小值。

2

創建新的Win32項目時,即使未選中「空項目」複選框,Visual Studio也會自動將預編譯頭「stdafx.h」添加到項目中。

如果要禁用此選項,請轉至項目配置屬性 - > C/C++ - >預編譯頭並選擇「不使用預編譯頭」。

使用預編譯頭文件請參閱:https://stackoverflow.com/a/4726838

和P.S.看看 - >https://stackoverflow.com/a/4207223

2

預編譯頭用於加速編譯時間,方法是隻編譯一次最頻繁包含的頭文件的內容,然後重新使用編譯結果。如果你願意,你可以改變它的名字。