C++全局变量在本文件内部和外部.cpp文件中的定义与使用
程序员文章站
2024-01-21 21:13:22
...
记录:
情景:基于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() { //xxx bbb1 = 0; bbb2 = 0; bbb3 = 0; //xxx }
当然,在析构函数中,也要对它们所占的空间进行释放:
b::~b() { bbb1 = 0; bbb2 = 0; bbb3 = 0; }
- 在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; }
- 在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(); }
- 初始化上述3个变量:
上一篇: 查看linux系统开机时间