分享

VC中stdafx.h中afx代表什么意思

 lifei_szdz 2014-02-21
AFX is an abbreviation for a group.
The MFC group was originally called the "Application Framework group" during the inception of MFC.
However, X doesn’t stand for anything other than sounding cool.
 The original AFX group was renamed to MFC long ago. There is no current AFX group.
But the "AFX" hasn’t been changed to "MFC" for the compatibility.
 
预编译头文件代表了编译器在源代码特定行上进行‘快照’。
在MFC库程序中,快照常紧接在#include "stdafx.h"后进行。
文件StdAfx.h包含了MFC库头文件的#include语句。
该文件的内容取决于运行AppWizard时候所做的选择。
文件StdAfx.cpp只包含#include "stdafx.h"语句。
StdAfx.cpp文件用来在相应项目的目录下产生预编译头文件(PCH文件)。
编译开关/Yc只用于StdAfx.cpp文件,导致产生预编译头文件(PCH),
而其它源文件的/Yu编译开关使可以使用一个存在的PCH文件。
开关/Fp用来指定专门的PCH文件名,默认情况下为相应目标输出文件目录下与项目同名扩展名为PCH的文件。
 
关于stdafx.h的作用:
Windows和MFC的include文件都非常大,
即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。
由于每个.CPP文件都包含相同的include文件,
为每个.CPP文件都重复处理这些文件就显得很傻了。
为避免这种浪费,AppWizard和Visual C++编译程序一起进行工作,
如下所示:
AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFC include文件。
且这一文件可以随被选择的选项而变化。
AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。
然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。
当Visual C++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。
 (扩展名pch表示预编译头文件。)
当Visual C++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。
 Visual C++不再分析Windows include文件,除非你又编缉了stdafx.cpp或stdafx.h。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多