例子:
头文件:state.h
需要定义一个全局变量供这些源文件中使用:方法如下
1、在 state.h声明全局变量: extern int a;
2、在state.cpp中定义该全局变量:int a = 10;
这样其它源文件就可以使用该变量啦
这里需要的是“声明”,不是“定义”!根据C++标准的规定,一个变量声明必须同时满足两个条件,否则就是定义:
头文件中应使用extern 关键字声明全局变量(不定义),如果这个变量有多个文件用到,可以新建一个cpp,在其中定义,把这个cpp加入工程即可。头文件请不要定义任何变量,那是非常业余的行为……
如果在.cpp里使用static定义,则该变量只在当前cpp文件中有效,在别的文件中无效
在.h里使用static定义,不会进行编译(.h文件不编译),只会在其每个include的cpp文件中包含编译,相当于在.cpp里使用static 定义。
转自:http://blog.sina.com.cn/s/blog_74a459380101rjh4.html