C编程规范(变量,结构体,typedef,函数,枚举,宏的命名)⽂章⽬录
1、命名约定
1.1 通⽤命名规则
函数命名,变量命名,⽂件命名要有描述性,少⽤缩写。
注意,⼀些特定的⼴为⼈知的缩写是允许的,例如⽤i表⽰迭代变量(iteration)和⽤T表⽰模板参数(template)。
⽬前主要有 4种命名风格:
序号类型描述
1驼峰 命名法⾸字母⼩写,每个逻辑断点都⽤⼤写字母来标记
⼀般⽤于全局变量,函数、结构体变量、对象名⽰例:myData
2帕斯卡(Pascal)命名法与驼峰命名法类似,只是 ⾸字母⼤写⼀般⽤于结构名、类名
⽰例:MyData
3下划线 命名法函数名中的每个逻辑断点都⽤下划线 _分割
C程序和UNIX这样的环境中,它的使⽤⾮常普遍⼀般⽤于函数、变量
⽰例:my_data
4匈⽛利 命名法变量名前⾯加上相应的⼩写字母的符号标识作为前缀,标识出变量的作⽤域、类型等⽰例:i_MyData
1.2 ⽂件名命名规则
⽂件名要全部⼩写,可以包含下划线 _或连字符 -,,依照项⽬的约定。如果没有约定。那么下划线 _更好。例如:my_useful_class.c
1.3 变量命名规则
变量(包括函数参数) 和数据成员名⼀律⼩写,单词之间⽤下划线 _连接。
类的成员变量以下划线结尾,但结构体的就不⽤。
序号类别举例
1局部变量,函数参数local_variable
2结构体内的变量struct_data_member
3类的成员变量class_data_member_
1.4 类型命名规则
所有类型命名:类,结构体,类型定义(typedef),枚举,类型模板参数,均使⽤相同约定,即以⼤写字母开始,每个单词⾸字母均⼤写,不包含下划线(帕斯卡命名法)。例如:
class BookCartoon {
string title_;
string author_;
};
struct BookCartoon {
char title[40];
char author[40];
};
typedef struct{
char title[40];
char author[40];
} BookCartoon;
enum ButtonState {
SHORT_PRESS,/* 短按 */
LONG_PRESS,/* 长按 */
};
typedef enum{
SHORT_PRESS,/* 短按 */
LONG_PRESS,/* 长按 */
} ButtonState;
类型 变量 采⽤驼峰命名:
序号类别举例
1结构体变量bookCartoon
2对象名bookCartoon
3枚举变量buttonState
1.5 函数命名规则
⼀般来说,函数名的每个单词⾸字母⼤写,没有下划线。
对于⾸字母缩写的单词,更倾向于将它们视作⼀个单词进⾏⾸字母⼤写。
序号⽅式描述
1驼峰 命名法myFunctio(),deleteUrl()
2下划线 命名法my_function()
3帕斯卡(Pascal)命名法MyFunction(),DeleteUrl()
1.6 枚举命名规则
枚举的命名应当和常量或宏⼀致:kEnumName或是ENUM_NAME。
typedef enum{
BS_SHORT_PRESS,/* 短按 */
BS_LONG_PRESS,/* 长按 */
} ButtonState;
1.7 宏的命名规则
命名全部⼤写,使⽤下划线 _连接。
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
2、函数
序号描述
1⼀个函数 仅完成 ⼀件功能
2重复代码 应该尽可能提炼成 函数
3避免函数的代码块嵌套过深
4对函数的错误返回码要全⾯处理
5在源⽂件范围内声明和定义的所有函数,除⾮外部可见,否则应该增加static关键字
3、质量保证
序号原则描述
1正确性程序要实现设计要求的功能
2简洁性程序易于理解并且易于实现
3可靠性程序在给定时间间隔和环境条件下,按设计要求成功运⾏程序的概率
4可维护性程序被修改的能⼒,包括纠错、改进、新需求或功能规格变化的适应能⼒enum c++
5代码 可测试性软件发现故障并隔离、定位故障的能⼒,以及在⼀定的时间和成本前提下,进⾏测试设计、测试执⾏的能⼒6代码 性能⾼效尽可能少地占⽤系统资源,包括内存和执⾏时间
7可移植性为了在原来设计的特定环境之外运⾏,对系统进⾏修改的能⼒
4、程序效率
在保证软件系统的 正确性、简洁、可维护性、可靠性 及 可测性的前提下,提⾼代码效率。
5、注释
优秀的代码 不写注释也可轻易读懂,注释⽆法把糟糕的代码变好,需要很多注释来解释的代码往往存在坏味道,需要重构。命名的常⽤缩写
Primitive(原语)缩写翻译receive recv接收send send发送argument arg-
buffer buf-command cmd-
compare cmp-Primitive(原语)缩写翻译
config cfg-device dev-error err-hexadecimal hex-initialize init-maximum max-minimum min-message msg-parameter param-previous prev-register reg-synchronize sync-temp tmp-
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论