这是我的第一篇文章,请将其视为一篇新的文章。
根据定义,“Stdafx.h” 是一个预编译头文件。
预编译 这个词意味着这个头文件是预先编译过的(一旦编译完成,就不需要再次编译了)。
预编译头文件
stdafx.h 主要在 Microsoft Visual Studio 中使用,让编译器知道哪些文件已经编译过,不需要从头开始编译。
例如
如果你包含以下 Windows 头文件
代码
1 2 3 4 5 6 7 8
|
#include <windows.h>
#include <tchar.h>
int main()
{
//your code
return 0;
}
|
编译器总是会从头开始编译这些头文件。
但是,如果你在这些包含之前包含 #include "stdafx.h",那么编译器将从 stdafx.h 中找到已编译的头文件,而不会从头开始编译。但是,如果编译器在 stdafx.h 中找不到任何已编译的头文件,那么它将首先编译这些文件,然后将其编译版本存储在 stdafx.h 中。这样就可以在下次编译时使用。
代码
1 2 3 4 5 6 7 8 9
|
#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
int main()
{
//your code
return 0;
}
|
它的好处是什么?
减少编译时间。
减少不必要的处理。
所以结论是,在你实际使用其他头文件(如 Windows 头文件)的地方使用 #include "stdafx.h"。否则,就没有必要使用 stdafx.h。这并不意味着你要从项目中移除它,但你可以通过选择文件(在你不需要 stdafx.h 的地方),然后转到其属性,在 C++ 选项 -> 预编译头中找到并选择“预编译头使用”为“否”,来禁用项目设置中的预编译头。
就是这样。
尽情享受吧 :)