1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C++全局变量在本文件内部和外部.cpp文件中的定义与使用

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

时间:2022-07-29 23:06:29

相关推荐

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

记录:

情景:基于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();}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。