在编程过程中,程序代码往往被拆成很多部分,每部分放在一个独立的源文
件中,而不是将所有的代码放在一个源文件中。考虑一个简单的小例子:程序中
有两个函数main()和foo()。main()函数位于main.cpp,foo()函数位于foo.cpp,
main()函数中调用foo()函数。在编译阶段,由于编译是对单个文件进行编译,所
以编译main.cpp 时,编译器不知道是否存在foo()函数以及foo()调用是否正确,
因此需要头文件辅助。也就是说,在编译命令:
cl.exe /c main.cpp
运行时,编译器不知道foo 的用法是否正确(因为foo 在另一个文件foo.cpp
中),只有借助头文件中的函数声明来判断。对main.cpp 进行编译时,不会涉及
foo.cpp 文件,只会涉及main.cpp 和foo.h(因为foo.h 被include)文件。头文件
的作用如图1.1 所示。