CC++编码规范(4)

2019-08-31 15:29

#ifdef EXPORT

for ( i = 0; i < MAX_MSXRSM; i++ )

#else

for ( i = 0; i < MAX_MSRSM; i++ )

#endif

正确:

头文件中:

#ifdef EXPORT

#define MAX_MS_RSM MAX_MSXRSM

#else

#define MAX_MS_RSM MAX_MSRSM

#endif

源文件中:

for( i = 0; i < MAX_MS_RSM; i++ )

<规则4> 使用宏定义表达式时,要使用完备的括号。

如下的宏定义表达式都存在一定的隐患。

#define REC_AREA(a, b) a * b

#define REC_AREA(a, b) (a * b)

#define REC_AREA(a, b) (a) * (b)

正确的定义为:

#define REC_AREA(a, b) ((a) * (b))

<规则5> 宏所定义的多条表达式应放在大括号内。

示例:下面的语句只有宏中的第一条表达式被执行。为了说明问题,for语句的书写稍不符规范。

#define INIT_RECT_VALUE( a, b ) \\

a = 0 ; \\

b = 0 ;

for ( index = 0 ; index < RECT_TOTAL_NUM ; index ++ )

INIT_RECT_VALUE( rect.a, rect.b ) ;

正确的用法应为:

#define INIT_RECT_VALUE( a, b ) \\

{ \\

a = 0 ; \\

b = 0 ; \\

}

for ( index = 0 ; index < RECT_TOTAL_NUM ; index ++ )

{

INIT_RECT_VALUE( rect[ index ].a, rect[ index ].b ) ;

}

<规则6> 宏定义不能隐藏重要的细节,避免有return,break等导致程序流程转向的语句。

如下例子是不规范的应用,其中隐藏了程序的执行流程。

#define FOR_ALL for(i = 0; i < SIZE; i++)

/* 数组 c 置0 */

FOR_ALL

{

c[i] = 0; }

#define CLOSE_FILE { \\

fclose(fp_local); \\

fclose(fp_urban); \\

return; \\

}

<规则7> 使用宏时,不允许参数发生变化。

下面的例子隐藏了重要的细节,隐含了错误。

#define SQUARE ((x) * (x))

. .

.

w = SQUARE(++value);

这个引用将被展开称:

w = ((++value) * (++value));

其中value累加了两次,与设计思想不符。正确的用法是:

w = SQUARE(x); x++;

<规则8> 当if、while、for等语句的程序块为摽諗时,使用搟}敺 拧_

while ( *s++ == *t++ ) ;

以上代码不符合规范,正确的书写方式为:

while( *s++ == *t++ ) {

/* 无循环体 */ }

while( *s++ == *t++ )

{

}

<规则9> 结构中元素布局合理,一行只定义一个元素。

如下例子不符合规范,

typedef struct {

_UI left, top, right, bottom;

} RECT;

应书写称:

typedef struct

{

_UI left; /* 矩形左侧 x 坐标 */

_UI top;

_UI right;

_UI bottom;

} RECT;

<规则10> 枚举值从小到大顺序定义。

<规则11> 包含头文件时,使用撓喽月肪稊,不使用摼 月肪稊。

如下引用:

#include \:\\switch\\inc\\def.inc\

应改为:

#include \

#include \

<规则12> 不允许使用复杂的操作符组合等。

下面用法不好,

iMaxVal = ( (a > b ? a : b) > c ? (a > b ? a : b) : c );

应该为:

iTemp = ( a > b ? a : b);

iMaxVal = (iTemp > b ? iTemp : b);

不要把\、\操作符与其他如\、\等组合在一起形成复杂奇怪的表达式。如下的表达式那以理解。

*pStatPoi++ += 1;

*++pStatPoi += 1;

应分别改为:

*pStatPoi += 1;

pStatPoi++;


CC++编码规范(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏教版说课集-小学四年级语文上册说课稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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