有以下文件:
share.h/cpp
main.h/cpp
若需要在main.cpp
中使用share.h
中定义的全局变量int a
,则需要满足:
share.h
为extern int a;
- 不能在
.h
中定义变量值
- 不能在
share.cpp
定义a
的值int a=5;
- 在
main.h
中include
文件share.h
static与extern的区别
新手非常容易出现的误区:像Java一样使用static定义全局变量
用static
在.h
文件中定义值,虽然可以编译过,但是该变量是无法多文件共享的,只能在*/h.cpp共享。有多少个.h/cpp
使用了定义了static的.h
就会有多少个同名static
变量,并且为0。