一个花了我两个晚上的低级错误

作者分享了一次因忽视代码细节而引发的BUG经历,并提出了预防此类问题的方法:详尽的函数测试与利用辅助工具检查编程习惯。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  真的好烦,这两天一直被一个BUG围绕着。 这几天下班回来吃完之后就把心思放在这BUG上面,程序流程不知道在脑海里理过了多少遍,现在终于把它解决了。另我惊讶的是这个BUG出现的地方竟然是我一个很低级的错误造成的。

    

 出错语句:*GetNextPtr(pTest = *GetNextPtr(p));

    正解语句:*GetNextPtr(pTest) = *GetNextPtr(p);

    看到这个我都快哭了,我的两个晚上五六个小时的时间就浪费在一个括号上面了。

 

 单看这条代码肯定知道它错误的可能性很大。可如果它是在几百上千行程序里面,程序包含多线程,网络等方面内容,并且这条语句运行的概率又很少。这样你就只有哭的份了。

 

 写这个的目的是在以后的程序中怎么样避免这样的错误发生!!这样的错误我可不想花几天时间来找。所以要找到避免这种事情发生的方法。即使事情发生了,也要能够只花最少的时间找出问题来。

 

 我想到了几点:

 一、写每个函数试都要进行测试,每条路线都得测一遍。

    这个方法怎么说呢,很多人都知道这样干是好的,可大多数人都不会这么干,太烦,我也一样,于是上面的错误~~~

 于是我想到了第二种方法:

 写一个程序把自己编程的习惯写法记录下来,然后扫描自己写的代码,指出不符合自己习惯的写法。这样改起来会好些。

  比如上面的,我根本不可能会有把赋值语句放到函数参数里面,这不会是我的编程习惯。程序一扫描就马上知道这个有问题。

  好!这个周末有事做了!

    

    我暂时只能想出这两个方法来了,不知道谁还有更好的方法,告诉我,小弟会感激不尽。

 

  

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值