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

2019-12-20 21:31发布

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

由于全局变量比较多,画流程图后,还是没办法看出来是否还有问题。请问各位都如何处理此类问题的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
34条回答
磊磊映画
1楼-- · 2019-12-23 15:13
 精彩回答 2  元偷偷看……
sjh18256
2楼-- · 2019-12-23 19:37
最好不要大动,添加你要的功能就好。大动还不如重写呢。
xuzhiping9889
3楼-- · 2019-12-24 00:32
经过很多人的手的程序,乱就让他乱吧,感觉现在重构很可能会出一堆莫名其妙的问题,而且重新测试也需要很长时间
wang1216
4楼-- · 2019-12-24 03:14
我一般都重写,这种程序基本没救
fnems
5楼-- · 2019-12-24 03:16
本帖最后由 fnems 于 2018-1-16 15:50 编辑

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

5 运行上述修改的程序。这时候会按照预期依次打印出哪个C源文件的哪一行修改/读取了哪个全局变量。
qingyin2009
6楼-- · 2019-12-24 08:03
 精彩回答 2  元偷偷看……

一周热门 更多>