C++全局变量的使用

昨天看了新泰科技的笔试题。

第一个感觉…下届的基础太差。

然后发现一个有趣的题:c++全局变量在其他的cpp文件中怎么使用?

我的第一感觉是直接使用。不过感觉加"include"和"::"这样回答更好,顺便问了下同寝的人。发现完全不同的答案,他说要使用每一个cpp里都要加exter
n…我俩僵持不下,于是开启vs2005,开始编程验证。然后发现如果是一个cpp文件,怎么做都是对的。如果两个或多个cpp文件,正确的格式是这样的

oo.h中

#ifndef OO

#define OO

extern int a;//注意这里一定不能赋值

#endif

oo.cpp中

#include

using namespace std;

int a = 10;//定义a变量

void func(){ a = 20;cout << a;}

xx.cpp中

#include

#include “oo.h”

using namespace std;

int main()

{

cout << a;//这里a打印10这说明oo.cpp中的a = 10先被执行。

func();

}

这好像是一种正确的做法,不知道还有没有其他做法