手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

高质量C /C编程指南 -- 第3章 命名规则

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
第3章 命名规则
比较著名的命名规则当推Microsoft公司的“匈牙利”法,该命名规则的主要思想是“在变量和函数名中加入前缀以增进人们对程式的理解”。例如任何的字符变量均以ch为前缀,若是指针变量则追加前缀p。假如一个变量由ppch开头,则表明他是指向字符指针的指针。

“匈牙利”法最大的缺点是烦琐,例如

int i, j, k;

float x, y, z;

倘若采用“匈牙利”命名规则,则应当写成

int iI, iJ, ik; // 前缀 i表示int类型

float fX, fY, fZ; // 前缀 f表示float类型

如此烦琐的程式会让绝大多数程式员无法忍受。

据考察,没有一种命名规则能够让任何的程式员赞同,程式设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当定制一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。

3.1 共性规则
本节论述的共性规则是被大多数程式员采纳的,我们应当在遵循这些共性规则的前提下,再扩充特定的规则,如3.2节。

l 【规则3-1-1】标识符应当直观且能够拼读,可望文知意,不必进行“解码”。

标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程式中的英文单词一般不会太复杂,用词应当准确。例如不要把CurrentValue写成NowValue。

l 【规则3-1-2】标识符的长度应当符合“min-length && max-information”原则。

几十年前老ANSI C规定名字不准超过6个字符,现今的C /C不再有此限制。一般来说,长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪。那么名字是否越长约好?不见得! 例如变量名maxval就比maxValueUntilOverflow好用。单字符的名字也是有用的,常见的如i,j,k,m,n,x,y,z等,他们通常可用作函数内的局部变量。

l 【规则3-1-3】命名规则尽量和所采用的操作系统或研发工具的风格保持一致。

例如Windows应用程式的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程式的标识符通常采用“小写加下划线”的方式,如add_child。别把这两类风格混在一起用。

l 【规则3-1-4】程式中不要出现仅靠大小写区分的相似的标识符。

例如:

int x, X; // 变量x 和 X 容易混淆

void foo(int x); // 函数foo 和FOO容易混淆

void FOO(float x);

l 【规则3-1-5】程式中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解。

l 【规则3-1-6】变量的名字应当使用“名词”或“形容词+名词”。

例如:

float value;

float oldValue;

float newValue;

l 【规则3-1-7】全局函数的名字应当使用“动词”或“动词+名词”(动宾词组)。类的成员函数应当只使用“动词”,被省略掉的名词就是对象本身。

例如:

DrawBox(); // 全局函数

box->Draw(); // 类的成员函数



[1] [2] 下一页

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS