声明:本文属于原创,如需转载请注明出处!如有问题请联系作者(eplaylity@gmail.com) !
1. cpp源文件中:
声明:
static 变量: static int st_var = 123; (缺省为0)
extern 变量: int ex_var = 456; (缺省为0)
使用:
static 变量: 本cpp源文件
extern 变量: 本cpp源文件,其他先声明"extern int ex_var;"(此句一般放文件头部,非必须)
2. hpp头文件中:
声明:
static 变量: static int st_var = 123;
extern 变量: int ex_var = 456;
使用:
static 变量: #include"xxx.hpp"
extern 变量: extern int ex_var;千万不能用#include,会导致重定义!
3. 总结:
1. static/extern全局变量都使用全局空间,都有缺省值
2. static 要全局共享,放hpp头文件,然后#include包含
3. extern 要全局共享,放cpp源文件,然后extern声明
4. 扩展:
当static/extern修饰全局函数时,效果与上述类似,略
5. 示例代码:
main.cpp:
MyClass.h:
MyClass.cpp
注:以上代码在codeblocks8.02中,以MinGW编译。执行结果如下: