多文件共享全局变量和函数[原创]

在一个文件中定义的变量和函数如何能被其他文件使用,不会出现多重定义和未定义的编译错误,这要使用好头文件和关键字extern。

大家都知道extern是声明外部变量的时候使用的,而函数声明默认就是extern的。

如果在一个文件中定义一个变量a,

int a;

那么只有本文件可以使用a变量,其他的文件看不到。其他文件可以使用extern声明a

extern int a;

这个语句的功能是,a变量已经被其他文件定义了,这里声明一下后,可以在本文件中使用。如果在每个文件中都声明一下每个外部变量,难免有点太繁了,我们可以在一个文件中定义变量,然后在这个文件对应的头文件中对这个变量加以extern声明,然后其它文件要使用变量的时候,只要把这个头文件包含进去就行了。

函数由于本身就是extern的,所以在头文件中声明的时候不需要加extern,只要像常规的声明一下即可。补充说明一下,头文件中只可以声明变量和函数,不要出现任何形式的定义,否则很容易出现多重定义。所有的定义都交给源程序(*.c或者*.cpp)去定义。

原文地址:https://www.cnblogs.com/snddman/p/1762813.html