一、C全局变量编译
模块1:UITest.h、UITest.cpp 模块2:MyTest.cpp 模块3:cTest.cpp【main】
//UITest.h
int a = 5;
int add();
//UITest.cpp -模块1
#include "UITest.h"
int add()
{
a +=a;
return a;
}
//MyTest.cpp -模块2
//#include "UITest.h" 否则编译出错
extern int a;//如果改成 static int a;表示是当前模块的一个变量,与外部无关,这样也可以和全局变量重名。
int sub()
{
return a/2;
}
//cTest.cpp -主模块
extern int a; //引用外部全局变量
extern int add(); //引用外部函数
extern int sub();
int main(int argc, char* argv[])
{
cout<<a<<endl;
cout<<add()<<endl;
cout<<sub()<<endl;
printf("Hello World!\n");
return 0;
}
【点评】主模块中,extern说明引用的是外部变量和函数&#x