推荐按如下方式书写:
/*功能寄存器值 */
enum ERR_TYPE
{
ERR_DATE = 1, /*日期错误 */
ERR_TIME = 2, /*时间错误 */
ERR_TASK_NO = 3 /* 任务号错误 */
}
<规则22> 每个函数完成单一的功能,不设计多用途面面俱到的函数。
多功能集于一身的函数,很可能使函数的理解、测试、维护等变得困难。
使函数功能明确化,增加程序可读性,亦可方便维护、测试。
<建议1> 循环、判断语句的程序块部分用花括号括起来,即使只有一条语句。
如:
if( bCondition == TRUE )
bFlag = YES;
建议按以下方式书写:
if( bCondition == TRUE )
{
bFlag = YES;
}
这样做的好处是便于代码的修改、增删。
<建议2> 一行只声明一个变量。
不推荐的书写方式:
void DoSomething(void)
{
int Amicrtmrs, nRC;
int nCode, nStatus;
推荐做法:
void DoSomething(void)
{
int nAmicrtmrs; /* ICR 计时器 */
int nRC; /* 返回码 */
int nCode; /* 访问码 */
int nStatus; /* 处理机状态 */
<建议3> 使用专门的初始化函数对所有的公共变量进行初始化。
<建议4> 使用可移植的数据类型,尽量不要使用与具体硬件或软件环境关系密切的变量。
<建议5> 用明确的函数实现不明确的语句功能
示例:如下语句的功能不很明显。
value = ( a > b ) ? a : b ;
改为如下就很清晰了。
int max( int a, int b )
{
return ( ( a > b ) ? a : b ) ;
}
value = max( a, b ) ;
或改为如下。
#define MAX( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
value = MAX( a, b ) ;