全局变量的初始化和应用问题

时间:2021-01-04 19:42:24
我在DataStruct.cpp中声明了一个全局变量
InputArgus inputArg;
在jaichaMFCtextDlg.cpp中定义一个
extern InputArgus inputArg;
并在这个文件中取控件里面的值对其进行初始化
并其而要在另一个文件中
testMd.cpp中应用这个变量 inputArg
可能说的有点混乱,不知道是否清楚
但是当我在testMd.cpp引用inputArg中的值时,发现是空的,并不是jaichaMFCtextDlg.cpp中从控件里取到的值,
我对变量的声明定义理解的还不是很透彻,应用有些问题,请各位指教一下

4 个解决方案

#1


检查一下执行顺序,可能是testMd中先执行了,jaichaMFCtextDlg还没来得及初始化

#2


完全不用全局变量对C/C++程序来说是不可能的,但是应该尽量少用或避免使用。可以考虑将这个变量封装为MainForm的直接或间接成员对象,并保证在MainForm的出初始化函数中对其做出始话处理。这样从程序可读性和可维护性角度考虑都是比较好的做法。

#3


恩 ,好的 ,明白啦,谢谢!

#4


.h文件中用extern声明,.cpp文件中定义

#1


检查一下执行顺序,可能是testMd中先执行了,jaichaMFCtextDlg还没来得及初始化

#2


完全不用全局变量对C/C++程序来说是不可能的,但是应该尽量少用或避免使用。可以考虑将这个变量封装为MainForm的直接或间接成员对象,并保证在MainForm的出初始化函数中对其做出始话处理。这样从程序可读性和可维护性角度考虑都是比较好的做法。

#3


恩 ,好的 ,明白啦,谢谢!

#4


.h文件中用extern声明,.cpp文件中定义