Windows客户端C/C++编程规范“建议”——表达式和运算
时间:2022-06-17
本文章向大家介绍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宏进行计算。
- Hygieia 为何物?DevOps 利器也
- 汽车攻击离你很近:一分钟变成汽车黑客
- LIFX智能灯泡漏洞泄露WIFI密码
- android ViewPager+Fragment之懒加载
- 逆向APK进行smali注入实现“秒破WIFI”
- 我所理解的Android 启动模式
- 搭建开源入侵检测系统Snort,并实现与防火墙联动
- 如何在Python中为长短期记忆网络扩展数据
- android 开发Handler源码剖析
- Keras作为TensorFlow的简化界面:教程
- Android基础:Fragment,看这篇就够了
- Rest api简介
- crossdomain.xml文件配置不当利用手法
- Android 常用的ORM框架详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法