C/C++编程规范(一)命名篇
来源:互联网 发布:数据库建模培训 编辑:程序博客网 时间:2024/05/21 16:55
1 编码规范
C系的程序员往往面临C和C++语言混合编程,在所有的.h文件中统一增加如下内容,可以保证无论是C语言还是C++调用都不会出问题。
#ifdef __cplusplusextern "C" {#endif /*头文件内容*/ #ifdef __cplusplus}#endif
1.1 数据类型
typedef unsignedcharBYTE;/**< 8位无符号 */typedef unsignedshortWORD;/**< 16位无符号 */typedef unsignedlongDWORD;/**< 32位无符号 */typedef signedcharSBYTE;/**< 8位有符号 */typedef signedshortSWORD; /**< 16位有符号 */typedef signedlongSDWORD; /**< 32位有符号 */typedef signedboolBOOL/**<布尔型*/
1.2 结构定义
结构以小写的t开头,第二个字母大写,如下例:tUIToDptSCMsg
实例:
/** * @brief: 消息定义 */typedef struct tUIToDptSCMsg{tSysMsgHead sSysMsgHead;/* 消息头 */DWORD dwBtnID;/* 按键ID */BYTE bUserNumLen;/* 用户号长度 */BYTE aUserNum[MAX_NUM_LEN + 1];/* 用户号 */BYTE bBtnAttribute;/* 按键属性,参见属性定义 */}tUIToDptSCMsg;
1.3 变量定义
1、变量名称定义以小写字母开头,小写字母表示变量类型。
如下例:
tDbAllAnls sDbAllAnls = {};/*结构变量以s开头*/char szName[MAX_NAME+1] = “”;/*字符串变量定义以sz开头*/cSC_SCall *pCall =P_ NULL;/*指针变量以p开头*/float fTval; WORD wSessionID = 0xffff; BYTE bState = 0xff; BOOL blChg= FALSE;DWORD dwCallID= 0xffffffff;float flTval;
2、所有变量定义都要有注释,包括临时变量。(除i,j这种循环变量)
3、函数变量增加IN、OUT、INOUT定义。
#define IN#define OUT#define INOUT#define OUTIN例如:/** * @brief 获得主叫端口信息 * @param bModule 模块号 * @param wPortNo 端口号 * @param pDbPortCfgAck查端口应答指针 * @return 返回值为SYS_OK或错误码 * @see */BYTE bSCGetCallerPortInf(IN BYTE bModule,IN WORD wPortNo, INOUT tDbPortCfgAck*pDbPortCfgAck)
1.4 宏定义
宏定义必须是全大写,如果是模块的宏定义都要以模块名称开头,以下划线分隔。
1.5 函数定义
1、 函数名称定义以小写字母开头可以表示出返回值,后续接模块号名称以大写简写。
2、 函数头定义下如,包括函数功能描述,入口参数注释,返回值
/** * @brief 获得端口详细类型 * @param bModule 模块号 * @param wPort 端口号 * @return 端口详细类型,0xff是无效值 * @see */BYTE bSCGetPortAttrib(IN BYTE bModule,IN WORD wPort){BYTE bPortType = 0xff;/*端口类型*/int iTrace = SYS_ERR;/*是否跟踪打印标志*/ bPortType = dbGetPortAttrib(bModule,wPort); iTrace = iSCTraceSwitch(MDL_SC_SCALL,DEBUG_API_CALL,wPort);if(iTrace ==SYS_OK){sysTrace(bModule,0,P_NULL,"bSCGetPortAttrib--wPort =0x%x,bPortType=%d",wPort,bPortType);}return bPortType;} /** * @brief 向接入层送setup_ack消息 * * @param bToneType 放音类型 * * @return 无返回 * @see */void cSC_SCall::vSCallSendSetupAckToIF(IN BYTE bToneType){tScIfSetupAck *pTmp = P_NULL;/*业务层到接入层的消息指针*/ pTmp = ( tScIfSetupAck * )CallM_alloc( ) ;if( pTmp == P_NULL ){sysError(MDL_SC_SCALL, 0, P_NULL,"CallM_alloc(tScIfSetupAck)= P_NULL!!!!!!!!!!!");return;}pTmp ->sSysMsgHead.bDstTask = TASK_IF; pTmp ->sSysMsgHead.bSrcTask = TASK_SC; pTmp ->sSysMsgHead.wMsgLen = sizeof(tScIfSetupAck); pTmp ->sSysMsgHead.wFuncCode = SC_IF_SETUPACK; pTmp ->sSysMsgHead.wPortNo = wPortNo; pTmp ->dwCallID = dwCallID; /**<CALLID*/ pTmp ->bToneType = bToneType; /**< 通知接入层;0xff表示送空音 */ vIfScSendMessage((tSysMsg *)pTmp); return; }
1.6 文件定义
1、文件名称以模块号起头第一个字母大写,后续加下划线,加文件实现功能,第一个字母大写。如Csc_Main.cpp Dbs_Main.cpp。
2、文件头如下标准,包括文件名、处理内容,公司信息、作者、版本号、初始建立文档时间、修改历史等等
/** * @file CallM_Record.cpp * @brief 业务层处理函数 * * @writer XXX * @version 1.00 * @date 2008.08.25 * @history *2008-09-09added by XXX功能说明*/
0 0
- C/C++编程规范(一)命名篇
- 华为C语言编程规范(4)—标识符命名
- 华为C语言编程规范(4)—标识符命名
- 代码编程:(四)Object-C命名规范详述
- C语言编程规范4: 命名规则
- MISRA C编程规范(一)
- C#(编程规范) -.NET命名规范中文版
- C#-C#命名规范
- Objective-c 命名规范
- C/C++命名规范
- C/C++命名规范
- .net(C#)命名规范
- Objective-c命名规范
- C语言命名规范
- 第三章 高质量C编程规范命名规则
- C语言项目开发-项目架构和编程命名规范
- C语言初学者编程规范—命名规则
- C语言初学者编程规范—命名规则
- android 静态mac地址的设置(or SN IMEI 自定义数据)
- Android(二) 开发环境的搭建(一、Eclipse)
- 几种list循环的方法
- 提高生产力:小雷之问和京东之答
- 高通工具QACT使用之MBDRC模块配置
- C/C++编程规范(一)命名篇
- hdu1069 Monkey and Banana dp
- [Usaco07Mar&luogu2884]Monthly Expense
- 没有上司的舞会
- 洛谷 p1478
- LeetCode No.84 Largest Rectangle in Histogram
- CodeLink计划
- 深入学习JavaScript: apply 方法 详解
- 2016.09.25日志