多文件共享全局变量和函数[原创]
在一个文件中定义的变量和函数如何能被其他文件使用,不会出现多重定义和未定义的编译错误,这要使用好头文件和关键字extern。
大家都知道extern是声明外部变量的时候使用的,而函数声明默认就是extern的。
如果在一个文件中定义一个变量a,
int a;
那么只有本文件可以使用a变量,其他的文件看不到。其他文件可以使用extern声明a
extern int a;
这个语句的功能是,a变量已经被其他文件定义了,这里声明一下后,可以在本文件中使用。如果在每个文件中都声明一下每个外部变量,难免有点太繁了,我们可以在一个文件中定义变量,然后在这个文件对应的头文件中对这个变量加以extern声明,然后其它文件要使用变量的时候,只要把这个头文件包含进去就行了。
函数由于本身就是extern的,所以在头文件中声明的时候不需要加extern,只要像常规的声明一下即可。补充说明一下,头文件中只可以声明变量和函数,不要出现任何形式的定义,否则很容易出现多重定义。所有的定义都交给源程序(*.c或者*.cpp)去定义。