C++中stdafx.h和stdio.h的区别

为什么在一般的编程平台上用stdio.h就行的程序,在vc上编写c程序需要stdafx.h!

stdio.h是C/C++中标准的头文件,这个文件是系统头文件,由编译器厂商提供。

stdafx.h是vc生成工程是生成的用户头文件,属于工程的一部分,stdafx.h是vc工程的预编译头文件。用于包含工程中每个都文件都要包含的文件。用于加快编译速度和整理代码结构
比如工程由四个cpp文件组成
a.cpp
b.cpp
c.cpp
d.cpp
每个cpp文件都要包含
stdio.h
stdlib.h
windows.h

那么可以把
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
放到stdafx.h中
而每个cpp只需要
#include "stdafx.h"即可

这样在便于维护代码,配合上编译器的预编译功能,还可以加快编译速度

如果不喜欢vc自动生成stdafx.h
在生成工程时选中empty project即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-30
stdio.h 标准输入输出文件,包含了scanf和printf函数,所以一般在c程序中常用。

stdafx.h是预编译的头文件,其中包含了stdio.h
第2个回答  2017-06-20
stdafx.h中包含了stdio.h, 不过stdafx.h仅适用于支持MFC的平台。
1、stdio.h
stdio指的是standard input & output, 标准输入输出。
stdio.h是C语言标准库文件的头文件,包含了基本的输入输出语句,以及文件操作语句等。
对于C语言初学者来说,使用命令行程序,stdio.h是必不可少的。
2、stdafx.h
stdafx的英文全称为:Standard Application Framework Extensions(标准应用程序框架的扩展)
stdafx.h是MFC的编译向导自动生成的,对于常见的编译器来说,也就是VC/VS自动生成的。 其内容由运行向导时,使用的选项来决定。
当使用AppWizard来自动生成某些项目的时候,系统会自动把所需要include的头文件在stdafx.h中先include一下,这样,只需要直接include这个stdafx.h文件即可.因为同一个项目中的不同源文件CPP都包含相同的include文件,这样,为每个.CPP文件都重复include这些文件就显得很傻了。当然如果不用MFC的话就不用了。即:在每个.cpp文件中都include stdafx.h 就相当于包含了其他的如iostream.h等文件
3、二者区别。
stdafx.h相对更智能,包含了常用的头文件,也包括stdio.h。 所以使用stdafx.h可以使代码更简单,不用在每个源文件都包含一串的头文件。
但由于stdafx.h并不是通用的,所以使用这一头文件的代码仅在支持MFC的IDE下工作正常,如果迁移到其它平台,那么除非自行移植或构建stdafx.h,否则会出现编译错误。
第3个回答  2009-10-30
加这个只有好处,没有坏处的,请参考百度百科
http://baike.baidu.com/view/1344257.htm?fr=ala0
第4个回答  2009-10-30
我一直用VC啊,头文件就是#include <stdio.h>,另一个我没用过,好像是MFC中的
相似回答