stdafx.h疑问。。。

//stdafx.h:includefileforstandardsystemincludefiles,//orprojectspecificincludefilesth... // stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#if !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
#define AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

// Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers

#include <windows.h>

// TODO: reference additional headers your program requires here

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)

这段代码什么用的,解释一下,感激涕零。。。小弟我献出仅有的10分,,为求一解。。。
展开
 我来答
sgedev
2008-06-23 · TA获得超过1030个赞
知道小有建树答主
回答量:460
采纳率:0%
帮助的人:636万
展开全部
// 这是 C/C++ 头文件一个惯用的方法,
// 为了防止头文件被多次包含(这会降低编译速度的),
// 整个并没有文件用
// #if !define A
// #define A
//
// 代码
//
// #endif
// 其中的 AFX_STDAFX_H__xxxx... 什么的, 是向导生成的
// 保存唯一的一个符号
//
#if !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
#define AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_

// _MSC_VER 是预定义的内部宏, 代码 VC++ (其实是 cl.exe) 的版本,
// 意思就是当编译器版本 > 1000 的时候, 才使用 #pragam once,
// 表明 #pragma once 在 版本 < 1000 的编译器上不被支持,
// 为移置性考虑的.
#if _MSC_VER > 1000
// 这个好像和上面的 #if...#define...#endif 的功能一样
#pragma once
#endif // _MSC_VER > 1000

// 定义 WIN32_LEAN_AND_MEAN 宏, 会去掉 windows.h 中一些
// 不太常用的定义, 以加快编译速度
// Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers

#include <windows.h>

// TODO: reference additional headers your program requires here

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)

这个是工程的预处理头文件, 同时还对应一个 stdafx.cpp, 使用预处理头文件能够加快编译的速度(当然是比较大的工程了), 它将一些基础性的, 很常用的, 而且不经常改动的头文件放到 stdafx.h 中包含, 并且工程设置中将预处理头打开, 之后仅在 stdafx.h 中包含的文件有变化或者 stdafx.h 本身有变化的时候才会重新编译, 这在一个大型的项目中对编译速度会有很大的提高!

基于以上所说的, stdafx.h 中放的是一些基础的, 常用的, 基本不被改动的东西, 所以默认生成的代码会将 windos.h/afxwin.h 包含进来, 你可以将你的工程中很少改动的基础头文件包含到 stdafx.h 中去.
992525486
2008-06-23
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
做初始化,定义一些必要的宏,包含一些必要的头文件,MFC默认是包含这个文件的,所以在这里尽量包含那些公用的文件,比如支持MFC的,或者其他的

****************************************************************

这就是微软为了不让自己的C代码和linux兼容而设计出来的垃圾stdafx.h头文件,本人对此深恶痛绝,因此每次编译都在编译选项里将 是否支持stdafx.h 设定为 NO
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
highclous
2008-06-22 · TA获得超过410个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:234万
展开全部
哈哈,被微软忽悠了吧。

这就是微软为了不让自己的C代码和linux兼容而设计出来的垃圾stdafx.h头文件,本人对此深恶痛绝,因此每次编译都在编译选项里将 是否支持stdafx.h 设定为 NO

小知识:凡是afx开头的文件,都是和MFC有关的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风轻云度
2008-06-22 · TA获得超过1423个赞
知道大有可为答主
回答量:1835
采纳率:0%
帮助的人:0
展开全部
做初始化,定义一些必要的宏,包含一些必要的头文件,MFC默认是包含这个文件的,所以在这里尽量包含那些公用的文件,比如支持MFC的,或者其他的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式