以下是引用午夜小学徒在2014-9-11 20:25:17的发言:
#include "stdlib.h"
#include "time.h"
#include "conio.h" 这三个头文件(以后程序用到的头文件)应该写到哪里啊?
如果你用“预编译头”选项,就可以把这三个包含语句写到stdafx.h中,然后每个.cpp仅包含stdafx.h即可(这就是自动生成的模板都有这一行的原因)。你要明白,每个.cpp的#include指令,是把那些.h的代码全部塞进这个.cpp中再进行编译,也就是说,你写一行#include <stdio.h>,就等于把stdio.h文件中的数百行代码都放进来了,然后又不知道stdio.h里面又包含了什么.h,一串一串地……编译器编译,是傻瓜式的,你若有3个.cpp(一个实际的项目程序,一百几十个.cpp是常事),每个都包含了stdio.h,那么就塞入3份stdio.h代码,编译3次。预编译头选项,就仅编译一次,以后再不编译了。当然,有人说这是MS编译器的扩展,其他编译器未必如此,也不是什么标准,看你进入哪个生态环境而已,熟悉了以后未必能适应不支持的环境,这要自己衡量取舍。
顺便补充一下:对静态编译型语言来说,即使包含了用不到的.h,也是没有坏处的,因为编译器可以把没用到的代码剔除,不会链接到最终可执行文件中。
[
本帖最后由 TonyDeng 于 2014-9-11 20:41 编辑 ]