慎用英文变量名

今天为了解决一个bug折腾了大半天。

这个bug非常怪异,一个类里的一个变量,没人动它居然值就变了,gdb调试了半天找不到哪里有修改。

偶然打印出变量的地址才发现异常之处。

cc_tajk tajk;
char swrq[20];

这两行是定义的全局变量,然后swrq的地址居然和tajk类里一个成员变量的地址重合了,奇怪的是在主模块里是正常的,

tajk类在一个单独的.cpp中,在tajk类中打印输出这两个地址,就会发现这两个地址是重合的。

最后没办法把代码拷贝到一个新的目录,然后把不相干的部分逐渐去掉,检查问题是不是还存在。

用这样的办法居然发现主模块里去掉

#include <errno.h>

居然就好了,再加上这个头文件又出同样的错误了。

再仔细查找代码,发现tajk类里有个成员变量

int errno;

难道是这个变量名引起的?赶快把这个变量名换掉,果然就正常了。

当初用这个变量名的时候觉得类成员变量而且只是errno这样的名字,以为没问题,没想到还是有冲突。

看来还是用拼音字母做变量名要好些吧。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值