用extern组织可跨文件访问的变量

来源:互联网 发布:nginx 400 错误 编辑:程序博客网 时间:2024/05/17 00:08

      在使用Win32、MFC、OpenGL等进行编程的时候,经常会见到其中可以跨文件访问的变量或者状态。例如:OpenGL采用的是状态机管理的机制,其中的诸多状态通过枚举类型GLenum定义,如GL_DEEPTH_TEST、GL_SHINESS等,编程时只需引入相应的头文件,便可以在各个文件中访问和修改这些状态。

     我们在实际编程中,如果代码量较大,或者需要引入类似的一组可以跨文件访问的变量或者状态,就需要借助exturn关键字。

文件结构如下:

                                      

1. Global.h 

#ifndef GLOBAL_H_INCLUDED#define GLOBAL_H_INCLUDED#define MAX_INT 999999extern bool IS_CLOSED;enum MYenum{    FIRST,    SECOND,    THIRD};#endif // GLOBAL_H_INCLUDED
2. Global.cpp

#include "Globel.h"bool IS_CLOSED = false;

3. main.cpp
#include <iostream>#include "Globel.h"using namespace std;int main(){    cout<< "Define \"MAX_INT\":" << MAX_INT<<endl;    cout<< "Boolean \"IS_CLOSED\":" << IS_CLOSED<<endl;    cout<<"THIRD -> "<<THIRD<<endl;    return 0;} 

0 0
原创粉丝点击