请问c++中的#include "stdafx.h"是什么意思?在vs中每次都要加吗?

时间:2023-02-09 21:19:06
请问c++中的#include "stdafx.h"是什么意思?在vs中每次都要加吗?
请通俗的说说对他的理解,谢谢。。

4 个解决方案

#1


预编译头的概念:
预编译头文件通常以.pch为扩展名,是将工程中比较稳定的代码预先编译好放在这个文件中
生成预编译头文件很耗时间,要尽量避免修改这些稳定的代码,如果这些代码被修改,则需要重新编译
生成预编译头文件。
作用:
预编译头文件可以用来提高速度,将不经常改变的代码预编译好,以免每次都和其他文件一起编译。
使用方法:
使用预编译头文件需要首先指定一个头文件,这个头文件包含不经常被改变的代码和其他的一些头文件
系统默认的是stdafx.h
产生预编译头文件和使用预编译头文件:
1、工程->设置,选择C/C++选项卡,分类选择“预编译头文件”,选择创建预补偿页眉文件,或者
修改命令参数为Yc”stdafx.h”.
2、单独编译stdafx.cpp文件,使用(Ctrl+F7)
3、在进入工程设置中选择使用预补偿页眉文件,标题设为stdafx.h, 不加引号
4、重新编译工程即可

我的自问自答:
1.为什么预编译头文件都还要对应一个cpp文件呀,我们需要的是头文件呀?
  因为单单一个头文件无法编译,所以一般来说预编译头文件都一对应的cpp文件(这个文件里一般只有一个include ),这个文件一般来说第一个被编译,这样就生成了.pch这个经过预编译头。

2.预编译头文件为什么能提高编译速度?
  对于单一的编译单元来说,使用预编译头,可以将原来不使用预编译头时的宏展开,include文件包含(IO读取的时间)等时间省去,故缩短了编译时间,提高了编译速度。

#2


最好加上,否则连MFC的垃圾堆都进不去。

引用 楼主 zhang0804140227 的回复:
请问c++中的#include "stdafx.h"是什么意思?在vs中每次都要加吗?
请通俗的说说对他的理解,谢谢。。

#3


vs自带的,里面是一些预处理,你用vs向导生成程序都会带这个文件,

#4


只要重建所有一次的时间不超过一分钟,个人建议设置不使用预编译头文件。

#1


预编译头的概念:
预编译头文件通常以.pch为扩展名,是将工程中比较稳定的代码预先编译好放在这个文件中
生成预编译头文件很耗时间,要尽量避免修改这些稳定的代码,如果这些代码被修改,则需要重新编译
生成预编译头文件。
作用:
预编译头文件可以用来提高速度,将不经常改变的代码预编译好,以免每次都和其他文件一起编译。
使用方法:
使用预编译头文件需要首先指定一个头文件,这个头文件包含不经常被改变的代码和其他的一些头文件
系统默认的是stdafx.h
产生预编译头文件和使用预编译头文件:
1、工程->设置,选择C/C++选项卡,分类选择“预编译头文件”,选择创建预补偿页眉文件,或者
修改命令参数为Yc”stdafx.h”.
2、单独编译stdafx.cpp文件,使用(Ctrl+F7)
3、在进入工程设置中选择使用预补偿页眉文件,标题设为stdafx.h, 不加引号
4、重新编译工程即可

我的自问自答:
1.为什么预编译头文件都还要对应一个cpp文件呀,我们需要的是头文件呀?
  因为单单一个头文件无法编译,所以一般来说预编译头文件都一对应的cpp文件(这个文件里一般只有一个include ),这个文件一般来说第一个被编译,这样就生成了.pch这个经过预编译头。

2.预编译头文件为什么能提高编译速度?
  对于单一的编译单元来说,使用预编译头,可以将原来不使用预编译头时的宏展开,include文件包含(IO读取的时间)等时间省去,故缩短了编译时间,提高了编译速度。

#2


最好加上,否则连MFC的垃圾堆都进不去。

引用 楼主 zhang0804140227 的回复:
请问c++中的#include "stdafx.h"是什么意思?在vs中每次都要加吗?
请通俗的说说对他的理解,谢谢。。

#3


vs自带的,里面是一些预处理,你用vs向导生成程序都会带这个文件,

#4


只要重建所有一次的时间不超过一分钟,个人建议设置不使用预编译头文件。