资产监测设备C代码中比较符‘==‘容易误写为‘=‘编译器却不报错的建议
Posted 瑞奇Ricky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了资产监测设备C代码中比较符‘==‘容易误写为‘=‘编译器却不报错的建议相关的知识,希望对你有一定的参考价值。
近期笔者在开发资产监测设备过程中,对于定位功能的优化。笔者的团队都才软件和硬件方面提出了不同的建议。
资产监测设备能够对货物的状态进行实时监测。包括了货物运输的速度、货物运输路径、货物运输的状态、以及货物的实时位置,帮助企业避免资产在运输中受损。例如企业在利用资产监测设备帮助大型超市监测货物运输过程时,可以将资产监测设备放置于货物中,超市管理人员只需要登录云端后台,即可对供应商运输过程中的货物情况一目了然。尤其是货物所处的实时位置,一方面能够帮助超市仓库管理人员,提前了解到货时间,同时在货物出现丢失等意外情况时,帮助工厂及时找回货物。
而定位功能的优化不仅取决于设备硬件方面,同时在设备的软件方面也需要不断改进,例如关于C代码中比较符’==‘容易误写为’='编译器却不报错一点建议:
考虑下面一段代码:
int i = 5;
if(i = 4)
{
…
}
作者本意是希望写成if(i == 4),有些编译器可能会报告警,但是很多编译器可能什么错误也不会报而可能会忽略这个bug。
因为实际编码中,有的操作的确是希望赋值后判断,例如也经常看到如下代码写法:
char p=NULL;
if (p = (char)strstr(src_str,“test”))
这里是先执行赋值操作,如果能查到字符串则返回指针地址给p,如果没查到则返回NULL给p
然后判断p指针是否为空。
建议:
写与常量的比较代码时可以,可以将常量写在前面,避免疏忽。比如if(i == 4)可以写成if(4 == i)
如果误写成了if(4 = i) 任何编译器都会报错。
根据以上内容与建议能够有效帮助编译器提高效率,对于同样面临该问题的工作者,可参考该内容。
以上是关于资产监测设备C代码中比较符‘==‘容易误写为‘=‘编译器却不报错的建议的主要内容,如果未能解决你的问题,请参考以下文章