static 全局变量的使用

来源:互联网 发布:老帅哥淘宝店 编辑:程序博客网 时间:2024/04/29 06:38


当我们要使用一个全局变量时,往往会在头文件中进行定义,然后使用该变量的地方包含该头文件

比如:

//comm.h

int g_val;

然后在使用该变量的地方,include该头文件即可。


如果这样使用你就错了。 

int g_val; 该语句实际上不止是声明,也是定义,会导致程序中有多个这个变量的定义。c++编译器会给出muti-define的错误。

此时即使加上static也不对,static仅仅是保证此次定义仅有一份而已。还是会被多次定义,并且定义的多个static同名变量之间互相不可见。而导致c++编译器不会给出编译错误,成为隐藏错误。


正确的做法应该是在头文件中使用extern int g_val进行声明。只在一个文件中进行定义。




原创粉丝点击