2.3. 可维护性
<规则1> 在逻辑表达式中使用明确的逻辑判断。
示例:如下逻辑表达式不规范。
1) if ( strlen(strName) )
2) for ( index = MAX_SSN_NUMBER; index ; index -- )
3) while ( p && *p ) // 假设p为字符指针
应改为如下:
1) if ( strlen(strName) != 0 )
2) for ( index = MAX_SSN_NUMBER; index != 0 ; index -- )
3) while ((p != NULL) && (*p != '\0' ))
<规则2> 预编译条件不应分离一完整的语句。
不正确:
if (( cond == GLRUN)
#ifdef DEBUG
(cond == GLWAIT)
#endif
)
{
}
正确:
#ifdef DEBUG
if( cond == GLRUN cond == GLWAIT )
#else
if( cond == GLRUN )
#endif
{
}
<规则3> 在宏定义中合并预编译条件。
不正确:
#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)
除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自常见C/C++编码规范(4)