2010 - C++编码规范

2026/1/27 12:47:01

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

5.2 复合表达式

?

不要编写太复杂的复合表达式。

例如:

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

?

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

例如:

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

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

a = b + c; d = a + r; ?

不要把程序中的复合表达式与“真正的数学表达式”混淆。

例如:

if (a < b < c) // a < b < c是数学表达式而不是程序表达式

并不表示

if ((a

5.3 if 语句

?

不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。

根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为TRUE)。TRUE的值究竟是什么并没有统一的标准。例如Visual C++ 将TRUE定义为1,而Visual Basic则将TRUE定义为-1。

假设布尔变量名字为flag,它与零值比较的标准if语句如下:

if (flag) // 表示flag为真 if (!flag) // 表示flag为假 其它的用法都属于不良风格,例如: if (flag == TRUE) if (flag == 1 ) if (flag == FALSE) if (flag == 0) ?

应当将整型变量用\或\!=\直接与0比较。

假设整型变量的名字为value,它与零值比较的标准if语句如下:

if (value == 0) if (value != 0)

不可模仿布尔变量的风格而写成

if (value) // 会让人误解 value是布尔变量

if (!value) ?

不可将浮点变量用\或\!=\与任何数字比较。

千万要留意,无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用\或\!=\与数字比较,应该设法转化成\或\形式。

假设浮点变量的名字为x,应当将 if (x == 0.0) // 隐含错误的比较 转化为

if ((x>=-EPSINON) && (x<=EPSINON)) 其中EPSINON是允许的误差(即精度)。 ?

应当将指针变量用\或\!=\与NULL比较。

指针变量的零值是“空”(记为NULL)。尽管NULL的值与0相同,但是两者意义不同。假


2010 - C++编码规范.doc 将本文的Word文档下载到电脑
搜索更多关于: 2010 - C++编码规范 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219