「C/C++」编写程序代码命名规范
说明
代码命名必须易于阅读和维护,在表达出意思的基础上命名越简洁越好,那么形成规范就尤为重要,以下为一些常用命名法:
- 驼峰命名法(CamelCase):
首字母小写,后面每个单词的首字母大写。如:studentName。- 帕斯卡命名法(PascalCase):
所有单词首字母大写,用于类名。如:ClassName。- 下划线命名法(snake_case):
所有字母小写,单词之间用下划线分隔。如:print_page。- 命令式命名法:
以动词开头,用于函数名。如:calculateArea()。
文件命名规则
用户文件的命名由英文单词组成,采用大小写混排方式,所有单词首字母大写,其余小写。文件名应当采用“动词”或“动词 + 名词”结构。
例如:SetHook.h,SetHook.cpp
函数命名规则
一般函数的命名与文件命名规则基本相同、采用大小写混排方式,所有单词首字母大写,其余小写。函数名也采用“动词”或“动词十名词”结构。
例如:SetPartAttr(),AskNumofRefsets()
回调函数分为两种:基本回调函数与控件回调函数,它们的命名方式完全相同。回调函数名称由前缀、描述和后缀组成,之间用下划线分隔开来;回调函数的前缀与对话框的前缀相同,全部采用大写字母,用下划线分割单词;描述一般采用大小写混排的方式,如果描述由一个单词组成,也可以采用全小写方式;后缀用cb(callback的缩写)来表示。
例如:FILE_NEW_cancel_cb(),CHECK_PART_CorrectPart_cb()
类型命名规则
类型 | 说明 | 举例 |
---|---|---|
class类型 | 类类型命名 | class CFileTool,CDlgSelectPart |
struct类型 | 结构体类型命名 | struct SPartAttr,SRefSets |
union类型 | 共用体类型 | union ULaylerSet |
enum类型 | 枚举类型命名 | enum OBJECT_TYPE{point, line, face, body} |
typedef类型 | 用户自定义类型命名 | typedef char* POINTER |
常量与宏命名
常量(const)与宏的命名全部采用大写字母,用下划线分割单词。考虑到系统对宏不进行类型安全检查等不利因素,建议尽量使用常量而不使用宏。
例如:下列两个语句的功能是等同的,
const int MAX_LENGTH=100;
#define MAX_LENGTH 100。
变量命名规则
前缀 | 说明 | 举例 |
---|---|---|
i、int | 所有整型:int、long、short | int iFileNum |
f | 单精度型:float | float fPtsDis |
d、db | 双精度型:double | double dLength,dbWidth |
b | 布尔型:bool | bool bIsCircle |
c | 字符型:char | char cName |
s、str | 字符串型:char[]、string | char sName[256]、string strName |
l | 逻辑型:logical | logical lIsDialogOpen |
a、arr | 数字类型 | int aiNum[10] |
p | 指针类型 | char* psName |