您的位置:首页 > 编程语言 > C语言/C++

C语言编程规范4: 命名规则

2015-11-17 00:25 253 查看
我们不仅要写高效的代码,还要写可读性很强的代码,随着我们所开发系统的复杂性的不断提高,这就要求我们所写的程序具有3个特性:1、可读性;2、可多人协作性;3、可移植性。但是,像我们这样电子专业毕业的学生,都没有接受过“软件设计方法论”、“操作系统原理”等课程的深入训练,这就使我们所写的程序与软件专业工程师所写的程序具有较大的差距,这些问题使得公司在程序的代码维护上面临着诸多的困难。这种窘境需要打破!

本文从“C语言编程规范”着手,着重讲授如何书写规范性的C语言程序代码,文中所举实例,均为知名公司所采用的C语言规范。按照本系列课程严格要求自己规范性编写C语言代码,可使得我们书写的程序给人耳目一新的感觉,易于阅读,并避免潜在的逻辑性错误的发生。

命名规则;

A、函数

函数的规模尽量限制在200行以内,函数名应该能体现该函数完成的功能,建议采用动词+名次的形式。关键部分应该采用完整的单词,辅助部分若太长可采用缩写,缩写应符合英文的规范。每个单词的第一个字母大写。

ShowPoints CtrlDestBoard SendResetMsg

标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。

说明:较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。

temp 可缩写为 tmp ;

flag 可缩写为 flg ;

statistic 可缩写为 stat ;

increment 可缩写为 inc ;

message 可缩写为 msg ;

B、变量

①在命名常量时,用大写:MAX_VALUE

②结构:结构的定义有两个名称,一个是该结构的类型名,一个是变量名。按照C语言的语法,这两个名称都是可选的,但二者必有其一。我们要求写类型名,类型名以tag作前缀。

Struct tagModel

{

……………//结构成员

}Model;

tagModel Direction;

对于程序中的常用的结构,希望能使用typedef定义,

typedef Struct tagModel

{

……………//结构成员

}Model, pModel;

③联合:(同上)

④变量的命名建议采用名词和匈牙利命名规则,变量的第一个字母小写,表示其数据类型。

int iIndex,iCount;

char cIndex,cSerialOut;

指针类型 pSever, pMsg;

⑤对于变量命名,禁止取单个字符(如i、j、k...),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的。

说明:变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如i写成j),而编译时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。

示例:下面所示的局部变量名的定义方法可以借鉴。

int liv_Width

其变量名解释如下:

l 局部变量(Local) (其它:g 全局变量(Global)...)

i 数据类型(Interger)

v 变量(Variable) (其它:c 常量(Const)...)

Width 变量含义

这样可以防止局部变量与全局变量重名。

⑥采用UNIX的大小写混排的方式,不要使用大小写与下划线混排的方式,用作特殊标识如标识成员变量或全局变量的m_和g_,其后加上大小写混排的方式是允许的。

AddUser m_AddUser

⑦除非必要,不要用数字或较奇怪的字符来定义标识符。

示例:如下命名,使人产生疑惑。

#define _EXAMPLE_0_TEST_

#define _EXAMPLE_1_TEST_

void set_sls00( BYTE sls );

应改为有意义的单词命名

#define _EXAMPLE_UNIT_TEST_

#define _EXAMPLE_ASSERT_TEST_

void set_udt_msg_sls( BYTE sls );

原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163
CSDN:http://blog.csdn.net/qingwufeiyang12346
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: