一个全局变量很多的程序,如何理清逻辑关系

2019-12-20 21:31发布

程序是我从原来产品移植过来的,中间经过很多人的手,现在又回到我手上,前些天发现一个严重问题,更改方法也想好了,只是觉得程序太乱了,由于已经量产,也不好重构,只想把它整理清楚,防止后期再有问题。

由于全局变量比较多,画流程图后,还是没办法看出来是否还有问题。请问各位都如何处理此类问题的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
34条回答
fnems
2019-12-24 03:16
本帖最后由 fnems 于 2018-1-16 15:50 编辑

1 把所有全局变量封装到一个全局结构体里面,然后删除所有全局变量。
2 建立全局结构体变量的赋值和读取函数,区分原程序的全局变量读写。
3 编译时缺少了删掉的全局变量会报错。把报错的语句改成第2步里面建立的读写函数。
4 改进读写函数,增加来源源码文件和来源源码行号参数。调用时传入__FILE__和__LINE__。函数里打印源码调用信息。

5 运行上述修改的程序。这时候会按照预期依次打印出哪个C源文件的哪一行修改/读取了哪个全局变量。

一周热门 更多>