选择好的变量名的注意事项

  1. 名字要准确的描述出该变量所代表的事物(eg:好的变量名:currentDate,todayDate坏的变量名:cd,date)
  2. 以问题为导向
  3. 平均长度在10-16和8-20个字符时调试程序花费力气最小。
  4. 对位于全局命名空间中的名字加以限定词(eg:namedpace)。

    (较长的名字适用于很少用到的变量或者全局变量)

    (较短的名字则适用于局部变量或者循环变量)

变量名中的计算值限定词

表示计算结果的变量:总额,平均值,最大值,等等。

类似于Total,Sun,Average,Max,Min,Record,String,Pointer,这样的限定词来修饰某个名字,要把限定词加在名字后面。

变量名中常用对仗词

Begin/end

First/last

Locked/unlocked

Min/max

Next/previous

Old/new

Opened/closed

Visible/invisible

Source/target

Source/destination

Up/down

为变量命名

为循环下标命名

如果要在循环外使用或嵌套循环时,最好取一个比i,j,k更有意义的名字。

为状态变量命名

定义:用于描述你的程序状态(eg:flag)

取一个比flag更好的变量名。

为临时变量命名

定义:用于存储计算机的中间结果。作为临时占位符。

取一个比temp更详细的变量名(eg:discrimination判别式)

为布尔变量命名

  1. done

    可用于表示循环结束或一些操作完成;事件完成前done为false,事情完成后为true。

  2. error

    可用于表示有错误发生,;错误之前error为false,错误已经发生时error为true。

  3. found

    可用于表示某个值已经找到;找到之前为false,找到之后为true。

  4. success/ok

    可用于表示一项操作是否成功;操作失败时为false,操作成功时为true。

为枚举类型命名

可以使用组前缀(类似:Color_Red;Color_Green)

为常量命名

Eg:CYCLES_NEEDED

DONUTS_MAX

与语言无关的命名规则指导

区分类和对象

通过大写字母开头区分类型和变量

通过全部大写区分类型和变量

通过给类型加"t_"前缀区分类型和变量

通过给类型加"a"前缀区分类型和变量

通过对变量采用更明确的名字区分类型和变量

标识变量

标识全局变量:【g_+】    eg:g_RunningTotal

标识成员变量:【m_+】

标识类型声明:【t_+】

标识具名常量:【c_+】

标识枚举类型元素:【e_+】/【全部大写】/【eg:color_+】

在不能保证输入参数只读的语言里标识只读参数:【const_+】

格式化命名提高可读性:【】

用户自定义类型

读书笔记_代码大全2第十一章_选择好的变量名相关推荐

  1. 读书笔记_代码大全2第七章_高质量的子程序

    创建子程序的正当理由 降低复杂度 把嵌套的部分提取出来形成一个独立的子程序,可以降低外围子程序的复杂度. 引入中间,易懂的抽象 避免代码重复 支持子类化 可覆盖的子程序保持简单,那在实现派生类时也会减 ...

  2. 【读书笔记】代码大全34章:软件工艺主题

    这本书大部分讲的都是软件开发的细节,本章节讲的主要是从宏观角度讲解软件工艺. 控制复杂度 软件开发的精髓就是控制复杂度 降低复杂度的方法 将系统拆分成子系统 精心设计接口,尽量隐藏设计细节 避免使用全 ...

  3. 读书笔记_CLR.via.c#第十四章_字符,字符串和文本处理

    对象初始化器 类 简单定义的类 类的构造函数 类的应用 嵌套的对象初始化器 集合初始化器 类型推理 Var myvar = 5; 匿名类型 动态查找

  4. 读书笔记_CLR.via.c#第十六章_数组

    数组类型 值类型数组 引用类型数组 多维数组 交错数组 数组转换 Copy数组

  5. 读书笔记_代码大全_第14章_组织直线型代码_第15章_使用条件语句

    组织直线型代码 + 使用条件语句 希望我的读书笔试能带你翻过18页的书 http://www.cnblogs.com/jerry19880126/ <代码大全>第14章和第15章的内容比较 ...

  6. 高等数学笔记-乐经良老师-第十一章-级数

    高等数学笔记-乐经良老师 第十一章 级数 第一节 级数的概念和性质 一.级数的概念 01 无穷级数 设 u1,u2,-,un,-u_{1}, u_{2}, \ldots, u_{n}, \ldotsu ...

  7. CSAPP读书笔记与习题作业练习-第3章

    CSAPP读书笔记与习题作业练习-第3章 疑问 疑问一 练习题3.26中为什么通过循环+异或可以判断二进制数中1的个数的奇偶性(已解决) 习题 练习题3.1 练习题3.2 练习题3.3 练习题3.4 ...

  8. Think Python读书笔记及课后习题---【前三章】

    昨天明明可以靠脸吃饭却偏偏要靠实力吃饭的班主任给我推荐了<ThinPython><ThinPython><ThinPython>这本书,于是乎我便开始了我的啃书之路 ...

  9. 读书笔记 | 之Photoshop里Pantone色类型该如何选择

    读书笔记 | 之Photoshop里Pantone色类型该如何选择 工作内容因为涉及到专色印刷,需考虑将RGB/CMYK模式下的色值转换为PANTONE专色值.PS的拾色器里有一个颜色库,可供不同的色 ...

最新文章

  1. CapsuleNet(了解)
  2. appium框架之bootstrap
  3. 在express.js上启用HTTPS
  4. python xlrd使用_python使用xlrd 操作Excel读写
  5. Android应用中去掉标题栏方法总结(Eclipse+Android Studio)
  6. linux mysql5.6 主从配置,CentOS7+mysql5.6配置主从
  7. energy in transition课文翻译_备战四六 | 四六级翻译常考固定表达,速记!
  8. HTML绿色风格农业科技公司网站源码
  9. 远程重启h3c路由器_梅林路由怎么开启远程访问
  10. Python+OpenCV:Feature Matching + Homography to find Objects
  11. 【pwnable.kr】passcode
  12. a标签点击不跳转的几种方法
  13. spring 读取配置文件
  14. 玩与学 | 《乐高EV3机器人搭建与编程》
  15. 2019最新《网易云课堂C++开发工程师案例-网吧收银系统(MFC+ADO)》
  16. centos6.6搭建LANP环境(yum)
  17. 消防工程师 5.气体灭火系统
  18. ​​【接口篇 / Wan】(7.0) ❀ 01. 配置 ADSL 拨号上网 ❀ FortiGate 防火墙
  19. 鸟哥的linux私房菜学习笔记7
  20. directx 11 64位

热门文章

  1. ECCV 2020 | 史上最强二值化网络ReActNet,精度首超ResNet
  2. Self-training在目标检测任务上的实践
  3. ACL 2020 | 多编码器是否能够捕获篇章级信息?
  4. 训练吞吐量提升6倍!飞桨弹性计算推荐系统套件ElasticCTR1.0发布
  5. 直播预告:基于强化学习的关系抽取和文本分类 | PhD Talk #18
  6. MsSQL学习第五章---排序和分页
  7. Spring Boot简介
  8. 「中间件系列一」kafka消息中间件
  9. 机器学习(三)聚类深度讲解
  10. JAVA——关闭ServerSocket