存储持续性、作用域和链接性
例子: 头文件:state.h 源文件:state.cpp 其它源文件:t1.cpp t2.cpp t3.cpp, 这些源文件都包含头文件state.h。 需要定义一个全局变量供这些源文件中使用:方法如下 1、在 state.h声明全局变量: extern inta; 2、在state.cpp中定义该全局变量:int a =10; 这样其它源文件就可以使用该变量啦 这里需要的是“声明”,不是“定义”!根据C++标准的规定,一个变量声明必须同时满足两个条件,否则就是定义: (1)声明必须使用extern关键字;(2)不能给变量赋初值 extern int a; //声明 int a; //定义 int a = 0; //定义 extern int a =0; //定义 头文件中应使用extern关键字声明全局变量(不定义),如果这个变量有多个文件用到,可以新建一个cpp,在其中定义,把这个cpp加入工程即可。 头文件请不要定义任何变量,那是非常业余的行为…… 一般在头文件中申明,用extern,在cpp中定义。 如果在头文件中定义,如果这个头文件被多个cpp引用,会造成重复定义的链接错误。 头文件只能申明全局变量(extern),不可定义(不推荐使用) .cpp里,在最外层定义即可(int gi),直接引用 如果在.cpp里使用static定义,则该变量只在当前cpp文件中有效