c语言库函数编程规范要点 c语言程序设计库函数( 四 )


词头 变量名 词头 变量名
task task sig signal
sb binary semaphores wd watchdog
sm mutual exclusion tm timer
sc counting semaphores msg message
pipe pipe
例:
#define ARRAY_SIZE 24 /*规则5.1.1.1*/
int g_iFlag;
class MyClass /*规则5.1.1.3*/
{
};
void someFunc( ) /*规则5.1.1.2和5.1.1.4*/
{
int nArray[ARRAY_SIZE];
unsigned char uchByte;
char szName[ ];
char *pszName = szName;
}
(11)有些词头(如p和u)可以和其它词头组合 。
例:WDOG_ID wdId;
WDOG_ID g_wdId; /*全局watchdog Id,故以g_开头*/
1.1.2名字的长度一般不要过长或过短 。过长的名字会增加工作量,使程序逻辑流程变得模糊;过短的名字无法表达符号的实际意义 。约定长度范围:3-31;
1.2数据和函数说明
1.2.1数据说明次序应当规范化,使数据属性容易查找,也有利于测试、排错和维护 。说明的先后次序应固定,应按逻辑功能排序,逻辑功能块内建议采用下列顺序:整型说明、实型说明、字符说明、逻辑量说明 。
1.2.2如果设计了一个复杂的数据结构 , 应当通过注释对其变量的含义、用途进行说明 。
1.2.3在函数的声明中使用异常声明 。
如:void f() throw(toobig, toosmall, divzero);
在声明一个函数时,将它所抛出的异常列出,便于函数的使用者了解可能会发生哪些异常 。
1.3 程序注释
1.3.1程序注释是程序员与日后的程序读者之间通信的重要手段之一 , 注释分为文件注释、函数注释和功能注释 。
1.3.2正规程序的注释应注意:
——注释行的数量占到整个源程序的1/3到1/2 。
1.3.3文件注释位于整个源程序的最开始部分,注释后空两行开始程序正文 。它包括:
——程序标题 。
——目的、功能说明 。
——文件作者、最后修改日期等说明 。
例:
./********************************************************************
(空一行)
标题: Demo.c
功能: 测试VxWorks的各种系统调用.
说明:
该程序测试各种VxWorks的系统调用函数 。包括任务(taks)的创建、挂起及任务间通过信号灯实现同步,通过消息队列 进行通讯 。
程序创建了两个任务:一个高优先级的任务和一个低优先级的任务 。两个任务间通过一个二进制的信号灯进行同步,通过消息队列进行通讯 。
当前版本: x.x
修改信息: 2000.06.05 John ,  Initial Version
2000.07.05 Tom,Bug xxxx fixed
**************************************************************/
(空2行,开始程序正文)
1.3.4 函数注释通常置于每函数或过程的开头部分,它应当给出函数或过程的整体说明对于理解程序本身具有引导作用 。一般包括如下条目:
——模块标题 。
——有关本模块功能和目的的说明 。
——调用格式
——接口说明:包括输入、输出、返回值、异常 。
——算法 。如果模块中采用了一些复杂的算法 。
例:
file://(/注释开头应和上一函数空两行)
(注释开头与上一函数最后一行间隔两行)
/********************************************************************
标题:assignmentComplete
功能:BSC=MSC消息生成函数,生成assignment_complete指配完成消息(BSMAP消息) .
格式:
int assignmentComplete(int iCellId, int iServiceChannnelNum, char *pszMSGData) throw(exception1, exception2)
输入:
int iCellId: MS所在的小区识别
iCellId取值:0x00-——0xff
int iServiceChannnelNum:MS所占的业务信道号码
输出:
char * pszMSGData:指配完成消息数据

推荐阅读