c语⾔变量名、函数名的命名规则
(1)的命名要清晰、明了,有明确含义,同时使⽤完整的单词或⼤家基本可以理解的缩写,避免使⼈产⽣误解——尽量采⽤采⽤英⽂单词或全部中⽂全拼表⽰,若出现英⽂单词和中⽂混合定义时,使⽤连字符“_”将英⽂与中⽂割开。较短的单词可通过去掉“元⾳”形成缩写;较长的单词可取单词的头⼏个字母形成缩写;⼀些单词有⼤家公认的缩写。例如:temp->tmp、->标志、statistic->stat、increment-
>inc、message->msg等缩写能够被⼤家基本认可。
(2)命名中若使⽤特殊约定或缩写,则要有注释说明。应该在源⽂件的开始之处,对⽂件中所使⽤的缩写或约定,特别是特殊的缩写,进⾏必要的注释说明。
(3)⾃⼰特有的命名风格,要⾃始⾄终保持⼀致,不可来回变化。个⼈的命名风格,在符合所在项⽬组或产品组的命名规则的前提下,才可使⽤。(即命名规则中没有规定到的地⽅才可有个⼈命名风格)。
(4)对于变量命名,禁⽌取单个字符(如i 、j 、k... ),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i 、j 、k 作局部循环变量是允许的。变量,尤其是局部变量,如果⽤单个字符表⽰,很容易敲错(如i写成j),⽽编译时⼜检查不出来,有可能为了这个⼩⼩的错误⽽花费⼤量的查错时间。
(5)除⾮必要,不要⽤数字或较奇怪的字符来定义标识符。
(6)命名规范必须与所使⽤的系统风格保持⼀致,并在同⼀项⽬中统⼀。
(7)在同⼀软件产品内,应规划好接⼝部分(变量、结构、函数及常量)的命名,防⽌编译、链接时产⽣冲突。对接⼝部分的标识符应该有更严格限制,防⽌冲突。如可规定接⼝部分的变量与常量之前加上“模块”标识等。
(8)⽤正确的组命名具有互斥意义的变量或相反作⽤的等。
下⾯是⼀些在软件中常⽤的反义词组。
add / remove begin / end create / destroy
insert / delete first / last g et / release
increment / decrement put / get
add / delete lock / unlock open / close
min / max old / new start / stop
next / previous source / target show / hide
send / receive source / destination
cut / paste up / down
⽰例:
intmin_sum;
intmax_sum;
intadd_user( BYTE *user_name );
intdelete_user( BYTE *user_name );
(9)除了编译开关/ 头⽂件等特殊应⽤,应避免使⽤_EXAMPLE_TEST_ 之类以下划线开始和结尾的定义。
变量名的命名规则
(1)变量的命名规则要求⽤“匈⽛利法则”。
即开头字母⽤变量的类型,其余部分⽤变量的英⽂意思、英⽂的缩写、中⽂全拼或中⽂全拼的缩写,要求单词的第⼀个字母应⼤写。
c++中string的用法
即: 变量名=变量类型+变量的英⽂意思(或英⽂缩写、中⽂全拼、中⽂全拼缩写)
对⾮通⽤的变量,在定义时加⼊注释说明,变量定义尽量可能放在的开始处。
见下表:
bool ⽤b开头 b标志寄存器
int ⽤i开头 iCount
short int ⽤n开头 nStepCount
long int ⽤l开头 lSum
char⽤c开头 cCount
unsigned char ⽤by开头
float ⽤f开头 fAvg
double ⽤d开头 dDeta
unsigned int(WORD) ⽤w开头 wCount
unsigned long int(DWORD) ⽤dw开头 dwBroad
字符串⽤s开头 sFileName
⽤0结尾的字符串⽤sz开头 szFileName
(2)指针变量的基本原则为:
对⼀重指针变量的基本原则为:“p”+变量类型前缀+命名,如⼀个float*型应该表⽰为pfStat。对⼆重指针变量的基本规则
为:“pp”+变量类型前缀+命名。对三重指针变量的基本规则为:“ppp”+变量类型前缀+命名。
(3)全局变量⽤g_开头,如⼀个全局的长型变量定义为g_lFailCount。即:变量名=g_+变量类型+变量的英⽂意思(或缩写)。此规则还可避免局部变量和全局变量同名⽽引起的问题。
(4)静态变量⽤s_开头,如⼀个静态的指针变量定义为s_plPerv_Inst。即: 变量名=s_+变量类型+变量
的英⽂意思(或缩写)
(5)对枚举类型(enum)中的变量,要求⽤枚举变量或其缩写做前缀。并且要求⽤⼤写。如:
enum cmEMDAYS
{
EMDAYS_MONDAY;
EMDAYS_TUESDAY;
……
};
(6)对struct、union变量的要求定义的类型⽤⼤写。并要加上前缀,其内部变量的命名规则与变量命名规则⼀致。
结构⼀般⽤S开头,如:
struct ScmNPoint
{
int nX;//点的X位置
int nY; //点的Y位置
};
联合体⼀般⽤U开头,如:
union UcmLPoint
{
LONG lX;
LONG lY;
}
(7)对常量(包括错误的编码)命名,要求常量名⽤⼤写,常量名⽤英⽂表达其意思。当需要由多个单词表⽰时,单词与单词之间必须采⽤连字符“_”连接。
如:#define CM_FILE_NOT_FOUND CMMAKEHR(0X20B) 其中CM表⽰类别。
(8)对const 的变量要求在变量的命名规则前加⼊c_。即:c_+变量命名规则;⽰例:const char* c_szFileName;
函数的命名规范
(1)函数的命名应该尽量⽤英⽂(或英⽂缩写、中⽂全拼、中⽂全拼缩写)表达出完成的功能——函数名应准确描述函数的功能。遵循动宾结构的命名法则,函数名中动词在前,并在命名前加⼊函数的前缀,函数名的长度不得少于8个字母。函数名⾸字⼤写,若包含有两个单词的每个单词⾸字母⼤写。如果是OOP ⽅法,可以只有动词(名词是对象本⾝)。⽰例:
LONG GetDeviceCount(……);
void print_record( unsigned int rec_ind ) ;
intinput_record( void ) ;
unsigned char get_current_color( void ) ;
(2)避免使⽤⽆意义或含义不清的动词为函数命名。如使⽤process、handle等为函数命名,因为这些动词并没有说明要具体做什么。
(3)必须使⽤函数原型声明。函数原型声明包括:引⽤外来函数及内部函数,外部引⽤必须在右侧注明函数来源: 模块名及⽂件名;内部函数,只要注释其定义⽂件名——和调⽤者在同⼀⽂件中(简单程序)时不需要注释。
应确保每个函数声明中的参数的名称、类型和定义中的名称、类型⼀致。
函数参数命名规范
(1)参数名称的命名参照变量命名规范。
(2)为了提⾼程序的运⾏效率,减少参数占⽤的堆栈,传递⼤结构的参数,⼀律采⽤指针或引⽤⽅式传递。
(3)为了便于其他识别某个指针参数是⼊⼝参数还是出⼝参数,同时便于编译器检查错误,应该在⼊⼝参数前加⼊const标志。
如:……cmCopyString(const CHAR * c_szSource, CHAR * szDest)
⽂件名(包括动态库、组件、控件、⼯程⽂件等)的规范⽂件名的命名要求表达出⽂件的内容,要求⽂件名的长度不得少于5个字母,严禁使⽤象file1,myfile之类的⽂件名。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。