第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,否则会出现编译错误。