欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++全局变量在本文件内部和外部.cpp文件中的定义与使用

程序员文章站 2024-01-21 21:13:22
...

记录:
情景:基于c++的代码:
工程中有2个.cpp文件,分别为a.cpp、b.cpp,我希望在b.cpp中声明并初始化几个全局变量bbb1、bbb2、bbb3,同时这几个全局变量的值我需要在a.cpp中得到。
需要做的工作:

  1. 在b.h中定义全局变量,采用private的形式:

    private:
    		js_u8 bbb1;
    		js_u8 bbb2;
    		js_u8 bbb3;
    
  2. 定义获取及改变上述3个变量的接口(我对他们的改变只是赋值,大家可以根据自己的需求封装更复杂的操作):

    		js_u8 Get_bbb1(){
    			return bbb1;
    		} 
    		js_u8 Del_bbb1(){
    			bbb1 = 0;
    		} 
    		js_u8 Get_bbb2(){
    			return bbb2;
    		} 
    		js_u8 Del_bbb2(){
    			bbb2 = 0;
    		} 
    		js_u8 Get_bbb3(){
    			return bbb3;
    		}		
    		js_u8 Del_bbb3(){
    			bbb3 = 0;
    		}
    
    1. 初始化上述3个变量:
      在b.cpp中的构造函数内初始化,即:
    b::b()
    {
    	//xxx
    	bbb1 = 0;
    	bbb2 = 0;
    	bbb3 = 0;
    	//xxx
    }
    

    当然,在析构函数中,也要对它们所占的空间进行释放:

    	b::~b()
    {	    
    	bbb1 = 0;
    	bbb2 = 0;
    	bbb3 = 0;
    }
    
    1. 在b.cpp本文件内使用、赋值上述全局变量:
    //打开复合规则v4的fpga enable寄存器
    if(bbb1 == 0)
    {
    	//do something
    	//xxx
    	bbb1 = 1;
    	bbb3 = 1;
    }
    

    同理,对bbb2也一样:

    	//打开复合规则v6的fpga enable寄存器
    if(bbb2 == 0)
    {
    	//do something
    	//xxx
    	bbb2 = 1;
    	bbb3= 1;
    }
    
    1. 在a.cpp中访问bbb1、bbb2、bbb3这3个变量,你需要调用在b.h中封装的接口来调用:
      首先你需要在a.cpp中支持b.h的头文件
    //判断bbb3和bbb1的值
    if((Get_bbb3() == 1) && (compr->Get_bbb1() == 0))
    {
    	//do something
    	//改变bbb2和bbb3的值
    	Del_bbb1();
    	Del_bbb3();
    }
    

    同理,对bbb2也一样:

    //判断bbb3和bbb2的值
    if((Get_bbb3() == 1) && (compr->Get_bbb2() == 0))
    {
    	//do something
    	//改变bbb2和bbb3的值
    	Del_bbb2();
    	Del_bbb3();
    }
    

上一篇: 查看linux系统开机时间

下一篇: