全局变量初始化的重要性
这段时间一直在维护VB6编写的《全站仪距离精度测试》软件,由于新需求中新增两个基线,并且每条基线的棱镜间距并不一样,因此我使用了一个boolean型的全局变量,并且设计在某按钮点击事件中给全局变量赋值,在这里我并没有考虑到全局变量初始化的问题,当然该变量是否初始化对程序本身完全没有影响。
然而,正是由于我没有对全局变量初始化的敏感度,导致后来问题的出现,原因是我希望软件能够做的更好一些,防止基线一旦被人挡住就会出现数据错误的现象,所以我又加了一个全局变量用于存放每一次测距的值,那么每次测距的时候,我就将测距值与全局变量(上一次测距的至)进行比较,通过分析两个数值的差距,来自动判数据是否有效,修改完软件后,测试了一下,的确是解决了被人挡住导致数据错误的问题,然而新问题出现了,当我重复使用一遍软件时,竟然没法显示数据,程序也一直停留不动,搞不懂是什么原因导致的,我又将问题复现了几次,突然意识到全局变量的问题,赶紧在使用全局变量之前,对其进行初始化操作,编译运行,问题得意解决。这时候才想起上次研发部开会时,老大说以后我们的软件的编码规则中必须遵循的一条“全局变量在使用前必须初始化!”
在此,我再一次总结——全局变量在使用前必须初始化!