首页 > 代码库 > Windows客户端C/C++编程规范“建议”——表达式和运算
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博客)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。