stdafx.h简介

词源简介

stdafx.h: 即Standard Application Framework Extensions ,中文名为:标准应用程序框架的拓展,也称预编译头文件,曾有一个专门搞ApplicationFrame的技术团队,被命名为afx,加上x只是为了口号更响亮而已…orz

功能简介

1 预编译头文件

所谓预编译头文件,就是把一个Project中使用的一些MFC标准头文件如(Windows.h等)预先编译,以后编译该工程时,直接使用预编译的结果即可,一次编译,重复使用,贼好使嘿嘿…(Emm…Borland公司最先采用了这种技术,而非Microsoft)
编译器认为,所有指令#include"stdafx.h"前的代码都是预编译的(将被忽略),它跳过#include"stdafx.h"指令,使用projectname.pch(拓展名为.pch表示预编译后的头文件)继续编译这条指令之后的所有代码

2 stdafx.h

从内容上来说,头文件stdafx.h主要包含:标准头文件(stdio.h、string.h等标准C的头文件)以及项目中的不会轻易改动的头文件

  1. 头文件夹下默认有stdafx.h,源文件夹下默认有stdafx.cpp,手动删除后,编译时系统报错
  2. stdafx.h并不是标准的C++头文件,本质上相当于VS默认的自定义文件,可修改其namepath内涵
  3. 你编写的任何.cpp文件都必须首先包含stdafx.h,所有MFC实现文件的第一条语句都是#include"stdafx.h"
  4. 预编译头文件包含有众多头文件的处理信息(符号信息),故而其本身会占用较大的存储空间,它是你工程文件里最大的文件,可以注意清理不需要的预编译头
3 预编译头的设置

可以在项目->属性->c/c+±>预编译头,进行设置:

  1. 开启、关闭预编译头
  2. 改变预编译头的名字,所以并一定用stdafx名字
  3. 修改预编译头输出文件的路径
4 关于报错
  1. 无法打开预编译头文件"xxx.pch":no such file or directory 的问题
    分析:根据上面的原理解释,可能是由于编译器无法通过stdafx.cpp创建一个预编译文件,从而其他文件没有办法去引用该pch文件
    解决方案:选中源文件stdafx.cpp,右键 -> 属性 -> C/C++ -> 预编译头,出现上述问题一般是由于预编译头的选项从 创建 变为了 使用,通过将选项重新改为创建可解决问题
  2. 在查找预编译头文件时遇到意外的文件结尾
    需要将指令#include"stdafx.h" 放在每个文件的开始位置,以供处理
5 附注
  1. 在Visual Studio2017的最新版本中pch.h即相当于stdafx.h的预编译功能,貌似还更强一些…
  2. pch.h的路径位置在工程创建时就已经被安排地明明白白了,不需要将其调整到工程统一的头文件包含目录中去

参考文献

CSDN博客文:https://blog.csdn.net/follow_blast/article/details/81704460

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值