一、C++中stdafx.h和stdio.h的区别
stdio.h是C/C++中标准的头文件,这个文件是系统头文件,由编译器厂商提供。
stdafx.h是vc生成工程是生成的用户头文件,属于工程的一部分,stdafx.h是vc工程的预编译头文件。用于包含工程中每个都文件都要包含的文件。用于加快编译速度和整理代码结构
比如工程由四个cpp文件组成
a.cpp
b.cpp
c.cpp
d.cpp
每个cpp文件都要包含
stdio.h
stdlib.h
windows.h
那么可以把
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
放到stdafx.h中
而每个cpp只需要
#include"stdafx.h"即可
这样在便于维护代码,配合上编译器的预编译功能,还可以加快编译速度
如果不喜欢vc自动生成stdafx.h
在生成工程时选中empty project即可
二、C++ 中stdafx.h是什么意思
C++中stdafx.h的英文全称为:Standard Application Fram Extend,中文名为:头文件预编译。
stdafx.h在C++中起到的作用是:把C++工程中使用的MFC头文件预先编译,以后该工程编译时,直接使用预编译的结果,这样可以加快编译速度。
C++编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名可以在project的编译设置里指定。
编译器默认所有在指令"stdafx.h"前的代码都是预编译,它跳过"stdafx. h"指令,使用projectname.pch编译这条指令之后的代码。
扩展资料
Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。
由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:
1、AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要MFCinclude文件。且这一文件可以随被选择的选项而变化。
2、AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。
3、然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。
4当VisualC++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。(扩展名pch表示预编译头文件。)
5、当VisualC++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。VisualC++不再分析Windowsinclude文件,除非你又编缉了stdafx.cpp或stdafx.h。
三、怎么打开stdafx.h文件
1、当无法打开源文件是,应该首先,看下 stdafx.h文件无法打开的原因。如下图。
2、知道了原因就经验接住cfree软件辅助打开。接着找到cfree5的快捷方式,然后鼠标单击右键,打开文件位置。
3、接下来进进入了cfree文件夹里面,在cfree文件夹里面找到“mingw”这个子文件夹。
4、然后找到“include”这个文件夹之后,这个是存放头文件的文件夹。
5、打开文件夹之后可以看到这里并没有stdafx.h这个头文件,这就是无法打开源文件的原因。接下来就可以修复了。
6、现在就可以解决问题了,首先网上下载一个stdafx.h头文件就可以了。
7、把从网上下载的stdafx.h头文件放到对应的文件夹里面就可以了。
8、完成上一不操作后再一次打开stdafx.h后。如图所示,完美解决了无法打开的问题,