c++中的#include "stdafx.h"是什么意思
#include "stdafx.h"
是预编译处理器把stdafx.h文件中的内容加载到程序中来。
stdafx.h
1名称的英文全称为:Standard Application Fram Extend
所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。
预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。
编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。
因此,所有的MFC实现文件第一条语句都是:#include "stdafx.h"。
2 详细工作原理及作用
stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。
Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。
为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:
◎AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFCinclude文件。且这一文件可以随被选择的选项而变化。
◎AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。
◎然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。
◎当VisualC++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。(扩展名pch表示预编译头文件。)
◎当VisualC++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。VisualC++不再分析Windowsinclude文件,除非你又编辑了stdafx.cpp或stdafx.h。
这个技术很精巧,你不这么认为吗?(还要说一句,Microsoft并非是首先采用这种技术的公司,Borland才是。)在这个过程中你必须遵守以下规则:
◎你编写的任何.cpp文件都必须首先包含stdafx.h。
◎如果你有工程文件里的大多数.cpp文件需要.h文件,顺便将它们加在stdafx.h(后部)上,然后预编译stdafx.cpp。
◎由于.pch文件具有大量的符号信息,它是你的工程文件里最大的文件。
如果你的磁盘空间有限,你就希望能将这个你从没使用过的工程文件中的.pch文件删除。执行程序时并不需要它们,且随着工程文件的重新建立,它们也自动地重新建立。
3 如何理解其原理
通俗一点说
当我们使用AppWizard来自动生成某些项目的时候,系统会自动把所需要include的头文件在stdafx.h中先include一下,这样,我们只需要直接include这个stdafx.h文件即可.因为同一个项目中的不同源文件CPP都包含相同的include文件,这样,为每个.CPP文件都重复include这些文件就显得很傻了。当然如果你不用MFC的话就不用了。即:在每个.cpp文件中都include stdafx.h 就相当于包含了其他的如iostream.h等文件
4 与stdio.h的区别
我们一般用TC或vc编译C程序的时候都要首先包含这个stdio.h头文件,这个头文件里面包含了scanf和printf函数的定义,如果我们不在程序开头include这个文件,那么你调用上面这两个函数就不会成功,它其实和c++中的iostream.h文件的作用差不多的,它们一般都已经在stdafx.h文件中被包含。
[create_time]2016-04-17 18:37:02[/create_time]2016-05-02 18:28:20[finished_time]1[reply_count]3[alue_good]xiangjuan314[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.8641d64a.ItdD2abhR39g9bzzwpoU_Q.jpg?time=4248&tieba_portrait_time=4248[avatar]TA获得超过3.3万个赞[slogan]这个人很懒,什么都没留下![intro]733[view_count]
C++ 中stdafx.h是什么意思
stdafx.h在C++中起到的作用是:把C++工程中使用的MFC头文件预先编译,以后该工程编译时,直接使用预编译的结果,这样可以加快编译速度。C++编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名可以在project的编译设置里指定。编译器默认所有在指令"stdafx.h"前的代码都是预编译,它跳过 "stdafx. h"指令,使用projectname.pch编译这条指令之后的代码。 扩展资料当使用AppWizard来自动生成某些项目的时候,系统会自动把所需要include的头文件在stdafx.h中先include一下,这样只需要直接include这个stdafx.h文件即可。因为同一个项目中的不同源文件CPP都包含相同的include文件,每个CPP文件都重复include这些文件就比较繁琐。具体在stdafx.h中需要include什么头文件,取决于用户在AppWizard中的选择,比如:#include // MFC core and standard components#include // MFC extensions参考资料来源:百度百科 - stdafx.h
[create_time]2022-12-11 17:44:26[/create_time]2022-12-26 17:44:26[finished_time]1[reply_count]0[alue_good]惠企百科[uname]https://pic.rmb.bdstatic.com/bjh/user/343825d09bee196abf9cec8955c23e80.jpeg[avatar]百度认证:北京惠企网络技术有限公司官方账号[slogan]惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。[intro]39[view_count]stdafx.h有什么用
.h到底有什么用? 首先向其致敬。 stdafx的全称应该叫做,Standard Application Fram Extend . 你会发现他里面没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。 Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:◎AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFCinclude文件。且这一文件可以随被选择的选项而变化。◎AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。◎然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。◎当VisualC++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。(扩展名pch表示预编译头文件。)◎当VisualC++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。VisualC++不再分析Windowsinclude文件,除非你又编缉了stdafx.cpp或stdafx.h。这个技术很精巧,你不这么认为吗?(还要说一句,Microsoft并非是首先采用这种技术的公司,Borland才是。)在这个过程中你必须遵守以下规则:你编写的任何.cpp文件都必须首先包含stdafx.h。如果你有工程文件里的大多数.cpp文件需要.h文件,顺便将它们加在stdafx.h(后部)上,然后预编译stdafx.cpp。由于.pch文件具有大量的符号信息,它是你的工程文件里最大的文件。如果你的磁盘空间有限,你就希望能将这个你从没使用过的工程文件中的.pch文件删除。执行程序时并不需要它们,且随着工程文件的重新建立,它们也自动地重新建立。
[create_time]2016-10-14 06:38:33[/create_time]2013-08-23 20:22:04[finished_time]1[reply_count]2[alue_good]小倦jlF[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.cc12aee.wGniiwzkahk7n_HjqJ2SbQ.jpg?time=3591&tieba_portrait_time=3591[avatar]TA获得超过126个赞[slogan]这个人很懒,什么都没留下![intro]1701[view_count]
include什么意思?(C语言)
C语言中两种方式使用#include命令, #include 与#include ””的区别是使用方式不同。一种是在包含指令#include后面””将头文件名括起来。这种方式用于标准或系统提供的头文件,到保存系统标准头文件的位置查找头文件。另一种是在包含指令#include后用双引号””将头文件包括起来。这种方式常用与程序员自己的头文件。用这种格式时,C编译器先查找当前目录是否有指定名称的头文件,然后在从标准头文件目录中查找。扩展资料:include()语句包含并运行指定文件。以下文档也适用于require()。这两种结构除了在如何处理失败之外完全一样。include()产生一个警告而require()则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用require()。include()就不是这样,脚本会继续运行。同时也要确认设置了合适的 include_path。注意在 php 4.3.5 之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。寻找包含文件的顺序先是在当前工作目录的相对的 include_path 下寻找,然后是当前运行脚本所在目录相对的 include_path 下寻找。参考资料来源:百度百科-include (计算机专业术语)
[create_time]2022-09-13 06:56:20[/create_time]2022-09-23 00:30:21[finished_time]1[reply_count]0[alue_good]教育达人小李[uname]https://gips0.baidu.com/it/u=4171487967,3540724488&fm=3012&app=3012&autime=1660565000&size=b200,200[avatar]每个回答都超有意思的[slogan]教育领域优秀人才,专注教育。[intro]279[view_count]“#include”在C++中是什么作用?
#include 是C++的预编译语句,作用是包含对应的文件,在这里是包含C++的STL头文件fstream。\x0d\x0a在包含了这个文件后,就可以使用fstream中定义的类及各种成员函数了。\x0d\x0afstream是C++ STL中对文件操作的合集,包含了常用的所有文件操作。在C++中,所有的文件操作,都是以流(stream)的方式进行的,fstream也就是文件流file stream。\x0d\x0a最常用的两种操作为:\x0d\x0a\x0d\x0a1、插入器(>)\x0d\x0a 从流中输入数据。比如说打开了文件流fin,那么定义整型变量x的情况下,fin>>x;就是从文件中读取一个整型数据,并存储到x中。
[create_time]2022-11-16 11:28:16[/create_time]2022-12-01 11:28:16[finished_time]1[reply_count]0[alue_good]信必鑫服务平台[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.3b707489.Pzvh_phCV7cMa9W2PNEYAQ.jpg?time=66&tieba_portrait_time=66[avatar]TA获得超过5.2万个赞[slogan]这个人很懒,什么都没留下![intro]32[view_count]
无法打开源文件“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后。如图所示,完美解决了无法打开的问题,
[create_time]2022-10-13 15:53:12[/create_time]2022-10-28 15:53:12[finished_time]1[reply_count]0[alue_good]太平洋电脑网[uname]https://iknow-pic.cdn.bcebos.com/ac4bd11373f0820253a47ee547fbfbedab641b31?x-bce-process=image/resize,m_lfit,w_800,h_450,limit_1/quality,q_85[avatar]专业IT门户网站[slogan]太平洋电脑网是专业IT门户网站,为用户和经销商提供IT资讯和行情报价,涉及电脑,手机,数码产品,软件等。[intro]4424[view_count]如何解决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后。如图所示,完美解决了无法打开的问题,
[create_time]2022-10-06 12:11:07[/create_time]2022-09-10 22:36:40[finished_time]1[reply_count]0[alue_good]小执着12138[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.ea89e1bd.qaJS8Dj3AwanbDVswZvipg.jpg?time=6316&tieba_portrait_time=6316[avatar]TA获得超过1.2万个赞[slogan]这个人很懒,什么都没留下![intro]699[view_count]c语言中#include ,#的作用是什么,为什么不能去掉#?
在C预言中,#的含义是预处理命令,在这里的作用是文件包含,即该程序在预编译时要包含stdio.h。头文件。#不能去掉,去掉后无法识别是预处理命令,编译会出错。在C语言中,预处理命令主要包含三方面的内容,分别是:1)宏定义;2)文件包含;3)条件编译。这三个都以#标识符作为开头。简介C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。
[create_time]2021-10-25 13:13:13[/create_time]2021-11-07 18:19:26[finished_time]1[reply_count]0[alue_good]四叶草聊职场[uname]https://pic.rmb.bdstatic.com/bjh/user/00a28b07456c9775a87da124dfd71b2b.jpeg[avatar]专注于职场的能力提升[slogan]专注于职场的能力提升[intro]829[view_count]stdafx.h的作用
stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:◎AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFCinclude文件。且这一文件可以随被选择的选项而变化。◎AppWizard然后就建立Stdafx.cpp。这个文件通常都是一样的。◎然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。◎当VisualC++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。(扩展名pch表示预编译头文件。)◎当VisualC++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。VisualC++不再分析Windowsinclude文件,除非你又编辑了stdafx.cpp或stdafx.h。在这个过程中你必须遵守以下规则:◎你编写的任何.cpp文件都必须首先包含stdafx.h。◎如果你有工程文件里的大多数.cpp文件需要.h文件,顺便将它们加在stdafx.h(后部)上,然后预编译stdafx.cpp。◎由于.pch文件具有大量的符号信息,它是你的工程文件里最大的文件。如果你的磁盘空间有限,你就希望能将这个你从没使用过的工程文件中的.pch文件删除。执行程序时并不需要它们,且随着工程文件的重新建立,它们也自动地重新建立。
[create_time]2016-05-12 17:25:33[/create_time]2016-05-27 13:02:19[finished_time]1[reply_count]0[alue_good]棦哥1330[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.1247428f.m9eFTcgl4Pix7Url9XWEfA.jpg?time=3633&tieba_portrait_time=3633[avatar]TA获得超过251个赞[slogan]这个人很懒,什么都没留下![intro]55[view_count]stdafx.h的介绍
stdafx的英文全称为:Standard Application Framework Extensions(标准应用程序框架的扩展)。所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。
[create_time]2016-05-12 17:25:37[/create_time]2016-05-27 13:02:21[finished_time]1[reply_count]0[alue_good]若儿慸狑竦[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.96ebcc5f.dICtrVvSLHQ5WsHjWfKxNw.jpg?time=3662&tieba_portrait_time=3662[avatar]超过55用户采纳过TA的回答[slogan]这个人很懒,什么都没留下![intro]9[view_count]急求高手帮忙!VC++6.0中调式的时候出现了一个错,找不到头文件stdafx.h,如何解决?
1.要不注释掉
2.要不建立一个
添加
// stdafx.h : 标准系统包含文件的包含文件,
// 或是经常使用但不常更改的
// 特定于项目的包含文件
//
#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料
// Windows 头文件:
#include
// C 运行时头文件
#include
#include
#include
#include
// TODO: 在此处引用程序需要的其他头文件
[create_time]2009-06-08 17:15:07[/create_time]2009-06-09 20:41:30[finished_time]4[reply_count]11[alue_good]九晨曦28[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.fa4b559b.WIuvumaYpgXdaWohritbPA.jpg?time=2889&tieba_portrait_time=2889[avatar]TA获得超过332个赞[slogan]这个人很懒,什么都没留下![intro]4094[view_count]