2007年3月14日星期三

c++食谱第二章部分笔记之二

食谱2.2 在多个源文件中使用同一变量
问题:需要在同一个程序的多个模块中使用同一变量,即使用全局变量
方案:
以正常的方式在实现文件中声明,定义变量,然后在其他需要此变量的实现文件中使用extern关键字声明。通常,可以把用extern声明的变量单独放在头文件中,然后在需要此变量的实现文件中使用include包含即可。
示例如下:

//gloabal.h
#ifndef GLOBAL_H_
#define GLOBAL_H_
#include <string>
extern int x;
extern std::string s;
#endif
//global.cpp
#include <string>
int x=7;
std::string s="testing";
//main.cpp
#include <iostream>
#include "global.h"
using namespace std;
int main(){
cout<<"x= "<<x<<endl;
cout<<"s= "<<s<<endl;
return 0;
}


extern告诉编译器该变量在其他地方已经分配了存储空间。