我们知道C/C++语言中一个工程可以包含多个源程序(.cpp文件),而源程序之间依靠头文件(.h文件)联系,那么源程序如何通过头文件联系呢?
1.头文件中#ifndef ...(变量名1,命名规则同标识符) #define ...(变量名2,可以变量名1不相同(如果不相同则不能防止重复编译) 也可以相同) #endif 的作用是防止重复编译。类似在头文件中出现的语句还有:#pragma once ,其功能也是防止重复编译。实测不写这些语句程序也是可以正常运行的。
2.源程序中调用头文件的作用就是完全复制头文件里面的文本内容。
3. 如果一个源程序中包含了一个头文件1,而头文件1中又包含了头文件2,则源程序中也会包含头文件2——即嵌套include,不需要再写一个include语句包含头文件2。
4.不同的源程序都可以单独编译,一般源程序中内容以函数和类为单位,只要该源程序的语句中调用了其它源程序中的函数,都需要调用相关的头文件(或者包含该函数的声明,因为头文件中有对该函数的声明)。比如调用输出函数printf,则必须在开头写:#include<stdio.h>。
5.所有的源程序只有一个main函数,除了这一点,都有源程序之间的关系是互相平行并通过头文件中的函数声明相联系。
6.综上,头文件一般是包含除了函数(类方法)定义以外的函数声明,常量定义,结构体变量定义,宏定义,类定义等。当然也可以包含函数(类方法)。