首页 > 编程知识 正文

c语言自己编写头文件,c语言常见头文件

时间:2023-05-06 11:06:12 阅读:167232 作者:4453

在VC项目中经常会看到名为stdafx.h的头文件。 以前没有特别注意,但是这个文件不好的话经常会弄错,所以我在谷歌上查了一下,总算弄清楚了。

stdafx的英语全部被称为“standardapplicationframeworkextensions”。

所谓头文件的预编译是指事先编译在一个项目(Project )中使用的几个MFC标准头文件(例如Windows.H、Afxwin.H ),之后编译该项目这样可以加快编译速度,节约时间。

个人资料

预编译头文件是通过编译stdafx.cpp生成的,并以项目名称命名。 预编译头文件的后缀为“pch”,因此编译结果文件为projectname.pch。

编译器使用通过头文件stdafx.h预编译的头文件。 可以在project编译设置中指定头文件stdafx.h。 编译器认为#include 'stdafx.h '指令前面的所有代码都是预编译的,跳过#include 'stdafx.h '指令,并使用projectname.pch更新此指令之后的

因此,所有MFC实现文件中的第一个语句都是#include 'stdafx.h '。 前面的所有代码都将被忽略,因此其他头文件必须位于这一行的后面。 否则,将显示非常严重的错误信息,例如“No such file or directory”。

作用

stdafx.h没有包装器,但定义了一些环境参数,以便编译的程序可以在32位操作系统环境中运行。

Windows和MFC包含文件非常大,即使有快速的处理程序,编译器也需要相当长的时间才能完成工作。 每个. CPP文件都包含相同的include文件,因此为每个. CPP文件重复处理这些文件是愚蠢的。

为了避免这种浪费,AppWizard和VisualC编译器的工作方式如下:

AppWizard创建了一个文件stdafx.h,其中包含当前工程文件所需的所有MFC包含文件。 您可以根据选择的选项更改此文件。

AppWizard然后创建Stdafx.cpp。 这个文件通常是一样的。

然后,AppWizard创建工程文档。 以这种方式编译的第一个文档是stdafx.cpp。

当VisualC编译stdafx.cpp文件时,结果将保存在名为stdafx.pch的文件中。 (扩展名pch意味着头文件的预编译。 )

VisualC在编译后续的. cpp文件时读取并使用刚生成的. pch文件。 除非编辑stdafx.cpp或stdafx.h,否则VisualC不再分析Windowsinclude文件。

在这个过程中你必须遵守以下规则。

你创建的. cpp文件必须首先包含stdafx.h。

如果工程文件中的大多数. cpp文件都需要. h文件,请将其添加到stdafx.h (后部),然后预编译stdafx.cpp。

.PCH文件具有大量的符号信息,因此它是你的工程文件中最大的文件。

如果磁盘空间有限,我们希望删除未使用过的项目文件. pch文件。 在进程运行时不需要,在重新创建工程文档时会自动重新创建。

原理

简单地说,使用AppWizard自动生成特定项目时,系统会自动将所需的include头文件include到stdafx.h中。 这样的话,直接include STD afx.h文件就可以了。 因为同一项目中的不同源文件CPP包含同一个include文件当然必须使用MFC。 这意味着所有. cpp文件都包含include stdafx.h,即包含其他iostream.h等文件

电脑官方版

安卓官方手机版

IOS官方手机版

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。