Windows客户端C/C++编程规范“建议”——表达式和运算

4 表达式和运算

4.1 比较操作中将常量设置为左值

等级: 【推荐】
说明:编写代码时,如果将常量设置为右值。可能因马虎将“==”写成“=”导致逻辑错误。这种场景下,编译器是不会报错的,代码检查也比较容易被忽视。
        例子: 委屈
std::string::size_type index = str.find("a");
if ( index = std::string::npos){
}
        上例中写法可以执行,但是逻辑是错的。如下编写,可以借助编译器检查出问题: 微笑
std::string::size_type index = str.find("a");
if ( std::string::npos = index ){
}

4.2 除法操作要判断除数是否为0

等级: 【必须】

4.3 乘法或加法运算需考虑结果溢出场景

等级: 【必须】

4.4 不使用复杂的复合结构

等级: 【推荐】
说明:比如不要多次嵌套使用“:?”运算符。复杂的复合结构将使代码不易阅读和理解。

4.5 不要在条件表达式中赋值

等级: 【推荐】
说明:避免出现==、=和!=等在条件表达式中出现,可以避免手误,也可以提高增加代码可读性。

4.6 对浮点数不要做相等或不等比较

等级: 【推荐】
说明:浮点数运算中经常产生误差,=和!=操作可能会返回期望相反结果。

4.7 尽可能使用sizeof(变量)而非sizeof(类型名)

等级: 【要求】
说明:这样方便代码的维护,将不至于之后修改变量类型后,sizeof计算出错。注意:对象指针使用sizeof后得出的是指针大小,而非对象大小

4.8 尽量避免使用位运算

等级: 【要求】
说明:除非对内存使用和效率非常高的情况下,尽量避免使用位运算。这可以使用提高代码的可读性。

4.9 offsetof宏

等级: 【必须】

说明:不要自己估算结构体中成员变量偏移,而使用offsetof宏进行计算。


(转载请指明出于breaksoftware的csdn博客)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

breaksoftware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值