C语言编码规范--4.表达式与基本语句

4.1 运算符的优先级

优先级运算符结合律





( )  [ ]  ->  .从左至右

!  ~  ++  --  (类型) sizeof

+  -  *  &
从右至左
*  /  %从左至右
+  -从左至右
<<  >>从左至右
<   <=   >  >=从左至右
==  !=从左至右
&从左至右
^从左至右
|从左至右
&&从左至右
||从右至左
?:从右至左

=  +=  -=  *=  /=  %=  &=  ^=

|=  <<=  >>=
从左至右

在表达式中使用括号,是表达式的运算顺序更加清晰

说明:为了防止产生歧义并提高可读性,应当用括号确定表达式的操作顺序

示例 :

word = (high << 8) | low

if ((a | b) && (a & c))

4.2 复合表达式

4.2.1 不要编写太复杂的复合表达

示例 :

i = a >= b && c < d && c + f <= g + h ; // 复合表达式过于复杂

 4.2.2 不要有多用途的复合表达式

示例 :

d = (a = b + c) + r ;

该表达式既求a 值又求d 值。应该拆分为两个独立的语句:

a = b + c;

d = a + r;

4.3 if语句

4.3.1 不可将bool变量直接与True、False或者1、0进行比较

说明:True和False的定义值和语言环境相关的,且可能会被重新定义

示例 :

设bFlag 是bool类型的变量

if (bFlag)                                        // compliant  表示flag为真

if (!bFlag)                                       // compliant 表示flag为假

if (bFlag == TRUE)                        // Non-compliant         

if (bFlag == 1)                                 // Non-compliant

if (bFlag == FALSE)                 // Non-compliant

if (bFlag == 0)                                 // Non-compliant

4.3.2 应当将整形变量用 “==” 或  “!=” 直接与0比较

示例 :

假设整型变量的名字为value

if (Value == 0)                        // compliant

if (Value != 0)                          // compliant

if (Value)                                 // Non-compliant  会让人误解 Value是布尔变量

if (!Value)                               // Non-compliant

 4.3.3 不可将浮点变量用 “==” 或 “!=” 与任何数字比较

说明:无论是float还是double类型都有精度限制,所以一定要避免浮点变量用“==”或“!=”与数字比较,应该转化成 “>=” 或 “<=” 形式

示例 :

if ((fResult >= -EPSINON) && (fResult <= EPSINON))   // compliant

其中EPSINON是允许的误差(即精度)。

if (fResult == 0.0)                                                   // Non-compliant 隐含错误的比较

 4.3.4 应该将指针变量用 “==” 或 “!=” 与NULL比较

说明:指针变量的零值是“空”(记为NULL),即使NULL的值与0相同,但是两者意义不同

示例 :

if ( NULL  == pHead )       // compliant 强调pHead是指针变量

if ( pHead != NULL )                 // compliant 强调pHead是指针变量

if (pHead == 0)                      // Non-compliant 容易让人误解pHead是整型变量

if (pHead != 0)                        // Non-compliant 容易让人误解pHead是整型变量

if (pHead)                             // Non-compliant容易让人误解pHead是布尔变量

if (!pHead)                               // Non-compliant容易让人误解pHead是bool变量

4.4 循环语句

4.4.1 不可在for循环体内修改循环变量,防止for循环失去控制

示例 :

for ( x = 0; x < 10; )

{

x = x * 2;                                          // Non-compliant

}

4.4.2 循环嵌套次数不宜太多,建议不超过4层

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

he盒子nu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值