为什么要实现声明,如果不设计声明机制,会出现什么情况:在程序A中调用程序B,如果编译通过,在运行时,发现B不存在或者说B的某个参数类型不对或参数个数不对,这时候就会报错,在运行的时候报错(极有可能到处报错),你的体验会好吗?所以声明应运而生。对将要调用的函数,在调用之前进行声明,编译系统根据函数原型对函数调用进行全面检查,如果不匹配,就报错,属于语法检查。
把所有的函数原型声明都放到一个头文件,到时候#include这个头文件,就相当与集中声明了调用函数,集中检查分析这些头文件
如果一批头文件要被很多其它源文件#include,它就会被检查分析很多次,有的头文件有互相包含后,最后可达到几十万行,很费时间,于是就产生了预编译:当编译器处理源文件#include “stdafx.cpp”(只有#include “stdafx.h”)中的一组头文件时,把编译好的映像文件保存在磁盘上,当其它源文件引用同样一组头文件时,编译器直接读取编译好的文件而不用再分析。
所以在源文件中#include “stdafx.h”(或者通过设置工程讲其它头文件指定为预编译头文件),起到的两个效果为:第一,声明了一组头文件(可能会用到其中几个头文件),第二,编译器不会再次分析头文件中声明的函数。