分享

读书日志:代码大全之第九章

 cupid8505 2012-06-30
第九章 数据名称
9.1 选择名称
在给变量命名时,考虑的问题是变量名称是否完全而又准确地描述了变量所代表的实体。
一个好记的名字通常是面向问题而不是解决问题的。

往往用Count来表示总数,而用Index来表示下标。这样,SalesCount表示的是卖出的总数,而Saleslndex则指的是卖出的某一种特定商品。


9.2 特定数据类型命名
循环变量命名:如果循环变量还要在循环外使用,那么应该用比i、j、k更能说明问题的名称。
状态变量命名:用比flag更好的名称来命名变量,最好不用flag作为状态变量的名字。
临时变量命名:名义上给变量一个“临时”的状态,因而程序员们在处理它们时往往会采取漫不经心的态度,从而增大了出错机会。
逻辑变量命名:Done、Error、Found、Success
枚举类型命名:可以通过使用相同的前缀或后缀表示某一类型的元素都是属于同一组的
常量命名: 应该用它所代表的抽象实体而不是数值来命名


9.3 命名约定
一句话, 使用有意义的名称。

9.4 非正式命名约定
标识全局变量。常见的编程问题之一是误用全局变量。可以在所有的全局变量前面都加上g_作为前缀来解决。
标识模块变量。模块变量是在模块内部供几个子程序使用的变量。
标识类型定义。类型的命名约定需要有两个功能:它们要明确地指出某一名称是类型名称,同时要可以避免类型名称与变量名称相冲突。
标识命名常量。需要对命名常量加以标识,以便可以使你知道是在用一个变量.
标识枚举类型。与命名常量同样的原因,枚举类型也需要被标识出来。
标识输入参数。有时输入参数会被错误改动
对名字作格式化以增强可读性。增强可读性常见的两项技术是用分隔字符或大写字母将单词分隔开来。


C约定
有些命名的约定是只适用于C的,可以在C中使用这些约定,也可以改变它以使其适应其它语言。
· c和ch是字符变量
· i和j整型下标
· n是数量
· p是指针
· s是字符串
· 预处理程序宏指令是以全部大写来表示的,这通常扩展到包含typedef
· 变量和子程序名称都是小写的
· 下划线“_”用做分隔符

9.5 匈牙利命名约定
匈牙利命名约定是一整套对子程序和变量进行命名的详细约定.
匈牙利命名主要包括三个部分:基本类型、一个或更多的前缀、一个限定词。

9.6 短名称
缩写使用的总体准则:
· 使用标准的缩写(常用缩写,如列在字典缩写表中的)。
去掉所有的非大写元音字母(如Computer写成Cmptr,Screen写成Scrn,Integer写
成Inter等)。
· 使用每个单词的头一个或头几个字母。
· 截掉每个单词头一至三个字母后面的其余字母。
· 使用变量名中每一个有典型意义的单词,最多可用三个单词。
· 每个单词的第一个和最后一个字母。
· 去掉无用的后缀——ing,ed等等。
· 保留每个音节中最易引起注意的发音。
· 反复交替地使用上述技术,直到变量名长度缩短至8到20个字母为止

关于缩写的建议
不要通过拿掉单词中一个字母进行缩写
缩写应保持一致性
使用容易发音的缩写。
用注解表来说明短名称
避免在名称中使用数字.

9.8 小结
恰当的变量名是可读性好的必要条件之一
命名约定可以区分局部、模块和全局变量
不管你从事的是哪种项目,都应该采用命名约定
匈牙利约定是一种非常有效的命名约定




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多