前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows客户端C/C++编程规范“建议”——表达式和运算

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

作者头像
方亮
发布2019-01-16 16:28:16
5690
发布2019-01-16 16:28:16
举报
文章被收录于专栏:方亮方亮

4 表达式和运算

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

等级:【推荐】 说明:编写代码时,如果将常量设置为右值。可能因马虎将“==”写成“=”导致逻辑错误。这种场景下,编译器是不会报错的,代码检查也比较容易被忽视。         例子:

代码语言:javascript
复制
std::string::size_type index = str.find("a");
if ( index = std::string::npos){
}

        上例中写法可以执行,但是逻辑是错的。如下编写,可以借助编译器检查出问题:

代码语言:javascript
复制
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博客)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年08月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4 表达式和运算
    • 4.1 比较操作中将常量设置为左值
      • 4.2 除法操作要判断除数是否为0
        • 4.3 乘法或加法运算需考虑结果溢出场景
          • 4.4 不使用复杂的复合结构
            • 4.5 不要在条件表达式中赋值
              • 4.6 对浮点数不要做相等或不等比较
                • 4.7 尽可能使用sizeof(变量)而非sizeof(类型名)
                  • 4.8 尽量避免使用位运算
                    • 4.9 offsetof宏
                    相关产品与服务
                    腾讯云代码分析
                    腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档