C++编码规范

1 数据类型

类型 			类型描述 								示例
u8 				无符号的 8bit 字节 			unsigned char byLetter -> u8 byLetter
u16 			无符号的 16bit 整数 		unsigned short wValue -> u16 wValue
u32 			无符号的 32bit 整数 		unsigned int dwValue -> u32 dwValue
u64 			无符号的 64bit 整数 		unsigned long long ullValue -> u64 fwValue
s8 				有符号的 8bit 字节 			signed char byLetter -> s8 byLetter
s16 			有符号的 16bit 整数 		signed short wValue -> s16 swValue
s32 			有符号的 32bit 整数 		signed int nValue -> s32 nvalue
s64 			有符号的 64bit 整数 		signed long long sllValue -> s64 sfwValue
BOOL 			有符号的 32bit 整数 		bool bIsValid -> BOOL bIsValid
BOOL32 			有符号的 32bit 整数 		bool bIsValid -> BOOL32 bIsValid
LPCSTR 			const 字符串指针 			const char *pchName -> LPCSTR lpstrName
LPSTR 			字符串指针					char *pchName -> LPSTR lpstrName

2 变量命名

2.1 规则

定义一个变量:类型 + 前缀
变量的命名规则:
(1) 对于全局变量,要求在变量前加 g_前缀,g 是 global 的缩写;
(2) 所有静态变量,包括全局的、局部的或类的静态变量都使用前缀 s_;
(3) 变量名采用匈牙利命名法([作用范围前缀(g_/m_)]+[公共前缀]+基本类型前缀+变量名),变量名最前有类型前缀(公共前缀和基本类型前缀),类型前缀后面是变量的含义,变量含义采用大小写结合的办法;
(4) 类的变量名应体现其功能含义和类型,采用类型加英文含义的命名规则,其前缀表示类的缩写(缩写原则上采用去元音方式),随后的每一单词(或单词缩写) 的首字母为大写,如 cstrName,cattrCellId。

2.2 前缀

表一:

前缀 		类型 						示例
b 			Boolean 布尔 			BOOL bIsValidUser;
by 			Byte 字节 				u8 byChannelType;
ch 			Char 字符 				s8 chStartCode;
w 			不带符号的16位整数		u16 wMsgLen;
dw 			不带符号的32位整数 		u32 dwTickCount;
fw 			不带符号的64位整数 		u64 fwTickCount;
sw 			带符号的16位整数 		s16 swUserNum;
n 			带符号的32位整数 		s32 nCountNum
sfw 		带符号的64位整数 		s64 sfwCountNum
f 			单精度浮点数 			float fBoxLen;
sz 			以 NULL 终结的字符 		s8 szUserName;
t 			自定义类型 				TPuFullInfo tPuFullInfo;
c 			class 类 				CCmuCtrlApp cCtrlApp;

表二:

前缀 		类型 									示例
a 			数组 							s8 achBookName[20]
p 			指针 							u8 *pbyBuf;
t 			自定义类型变量(例如:结构) 		TPuInfo tPuInfo;
em 			枚举类型 						EM_PU_STATUS emCurStatus;
aa 			多维数组 						int aaScoreInfo[100][3];
ap 			存放指针的数组 					s8 *apUserAddr[256];
at 			存放自定义类型变量的数组 		TPuInfo atPuInfo[MAX_NUM]
pa 			指向数组的指针 					s8 *paPuName;
pp 			多维指针 						s8 **ppbyAddrInfo;
pt 			指向自定义类型的指针变量 		TPuInfo *ptCurOperPuInfo;
pf 			函数指针 						int (*pfGetUnitSize)(int);

表三:

前缀        类型                             举例
q 			queue 							queue qInstantMsg
dq 			deque 							deque dqMtInConf
vct 		vector 							vector vctCapInfoArray;
lst 		list 							List lstSpeakerApply
map 		map 							map mapDispInstantMsg
set 		set 							set setSubMtOnline
stk 		stack 							stack stkMtOrderSort
it 			iterator 						iterator itAllMtToCall
str 		std::string 					std::string strMtName

3 函数命名

函数的命名规则:(C++的函数名首字母建议大写)
(1) 函数名一般采用大小写字母结合的形式;
(2) 函数名的首字母一般情况下建议大写;
(3) 函数名中不同意义字段之间不要用下划线链接,而要把每个字段的首字母大写以示区分;
(4) 函数名的命名采用动宾或者宾动格式,但在一个模块内部只使用一种格式;
(5) 回调函数以“CB”开头;
(6) 专有名词和缩写按照习惯的大小写形式嵌入函数命中,不受第一条限制;
(7) 函数名的长度必须控制在 30 字符内,建议控制在 20 个字符之内;
(8) 对提供给大部分模块用的一些公用函数,如操作系统所提供的函数等,不在以上规定中;
(9) 具有互斥意义的变量或相反动作的函数,建议用反义词组命名。

示例:

void SendMsgToAllSubCmu(u16 wEvent, u8 * const pbyMsg = NULL, u16 wLen = 0);
void SendMsgToAllCmuExceptDescendant(u16 wEvent, u8 * const pbyMsg = NULL , u16 wLen = 0);
BOOL32 TransferMsgToOtherCmu(const CPduDevNo & tCmuNo, u16 wEvent, u8 * const pbyMsg = NULL);
void CB_CompressFrameInfo(u8 *pbyFrameBuf, void *pbyContext);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值