记录:
情景:基于c++的代码:
工程中有2个.cpp文件,分别为a.cpp、b.cpp,我希望在b.cpp中声明并初始化几个全局变量bbb1、bbb2、bbb3,同时这几个全局变量的值我需要在a.cpp中得到。
需要做的工作:
在b.h中定义全局变量,采用private的形式:
private:js_u8 bbb1;js_u8 bbb2;js_u8 bbb3;
定义获取及改变上述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;}
初始化上述3个变量:
在b.cpp中的构造函数内初始化,即:
b::b(){//xxxbbb1 = 0;bbb2 = 0;bbb3 = 0;//xxx}
当然,在析构函数中,也要对它们所占的空间进行释放:
b::~b(){bbb1 = 0;bbb2 = 0;bbb3 = 0;}
在b.cpp本文件内使用、赋值上述全局变量:
//打开复合规则v4的fpga enable寄存器if(bbb1 == 0){//do something//xxxbbb1 = 1;bbb3 = 1;}
同理,对bbb2也一样:
//打开复合规则v6的fpga enable寄存器if(bbb2 == 0){//do something//xxxbbb2 = 1;bbb3= 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();}