头文件
其实头文件对计算机而言没什么作用,它只是在预编译时在#include的地方展开一下,没别的意义了。
其实头文件主要是给别人看的。我做过一个实验,将头文件的后缀改成xxx.txt,然后在引用该头文件的地方用#include "xxx.txt",编译和链接都很顺利的过去了。由此可知,头文件仅仅为阅读代码使用,没其他的作用了!
不管是C还是C++,你把你的函数、变量、结构体或者类放在你的.c或者.cpp文件里,然后编译成lib,dll,obj,.o等等,然后别人用的时候是gcc hisfile.cpp yourfile.o/bj/dll/lib,对于他来说他怎么知道你的lib,dll...里面到底有什么东西呢?这时就需要看你的头文件,你的头文件就是对用户最好的说明。
那既然是说明,头文件里面放的自然就是关于函数,变量,类的声明了,记着,是声明,不是定义。所以最好不要傻兮兮的在头文件里定义什么东西,比如全局变量:
#ifndef XXX_H
#define XXX_H
int A;
#endif
虽然条件编译选项#ifndef能保证你的头文件只被引用一次,但若多个c文件包含这个头文件时还是会出错的,因为宏名(XXX_H)的有效范围仅限于本c源文件,所以在这多个c文件编译时是不会出错的,但在链接时就会报错,说你多次定义了同一个变量。
浙公网安备 33010602011771号