超级弹丸论破2技能:C语言的头文件如何编?

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 20:32:48
其实写一个C语言程序可以完全不用头文件。对#include指令,编译过程中只是在预处理阶段把包含的文件以文本形式完全替换到#include所在的那一行而已。由此可以看出,头文件内容也是编译器(在预处理之后)编译的,如果自己在源文件里面写头文件的内容,可以不用#include。学会C语言就应该会编写头文件(至于是不是有必要写则另当别论)。
头文件的内容一般是函数声明、宏、内联函数等。如果只有一个源文件,那么完全可以不用头文件(当然用现成的头文件可能比较方便)。但是在多个文件中,需要超过一次使用相同声明等代码时,照抄显然会增加维护成本(一旦一个源文件内改了还需要复制粘贴到另外的源文件中),这时候显然应该使用头文件减轻负担。这里头文件会被多个源文件包含生成多个目标文件,因此不应该在头文件中放函数和全局/静态对象的定义(而只能是声明)以免链接器产生重复定义的错误(一般也不应该在一个源文件中包含另外的源文件)。于是一般习惯以一个头文件对应一个源文件,主文件名相同以方便查看对应关系。此外,函数和对象声明可以不是对应源文件而是对应外部已经编译好的静态库文件(例如.lib),无需再次编译,C标准库就是一个例子。