C++控制台应用程序
我们创建一个包含预编译头的C++控制台应用程序时,会发现其结构是这样的:
1)理解预编译头文件: 所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的(通过属性页里的C/C++选项里的预编译头设置指定)。编译器认为,所有在指 令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。因此,所有的CPP实现文件第一条语句都是:#include "stdafx.h"。
因此stdafx.h是预编译的头文件,在stdafx.h里面添加我们使用到的其他头文件,stdafx.cpp负责编译预编译头文件,生成结果保存在后缀名为.pch的文件中。记住:
stdafx.cpp的作用是用来放 #include "stdafx.h"语句的。
为了生成预编译头xx.pch文件h和名为 StdAfx.obj 的预编译类型文件的,(因为.h文件不能被编译生成.obj文件)。
它的作用就是这个,没有别的了。最好不要在里面添加其他内容。
2)理解 .obj文件: .obj文件即二进制目标文件,可以这样理解:.obj文件是编译生成的,通过编译我们得到了.obj文件。
3)理解 .exe文件: .exe文件是链接器通过链接过程把.obj文件和库文件链接成exe文件。
4)理解.lib文件:静态库文件。
5)理解.dll文件:动态库文件。