C++编程规范 编程风格 学习 (3) -- 避免使用“魔数”
2013-01-02 12:37
316 查看
避免使用“魔数”
“程序设计并非魔术,所以不要故弄玄虚:要避免在代码中使用诸如42和3.14159这样的文字常量。它们本身并没有提供任何说明,并且因为增加了难于检测的重复和使维护更加复杂。可以使用 符号名称和表达式替换它们,比如width * aspectRatio。”名称能够增加信息,并提供单一的维护点,而程序中到处重复的原始数据是无名的,维护起来很麻烦。常量应该是枚举符或者const值,有合适的作用域和名称。
这个说的很实际,有些公司的代码缺乏说明或者注释,更糟糕的是写代码的人离职了,他留下的“魔数”就成了坑,后面的继任者要看明白这“魔数”简单的还好办,复杂的,尤其是算法相关的,那就是杯具。
实际的做法可以把这些数字或者字符串写死到文件中,并给它们一个合适的名称,与代码分开。这样做后续维护和检查都是方便。
切记,避免使用宏来定义这些数值、字符串,而应该去用const常量。
重要的特定于领域的常量应该放在名字空间一级。
const size_t PAGE_SIZE = 8192, WORDS_PER_PAGE = PAGE_SIZE / sizeof(int), INFO_BITS_PER_PAGE = 32 * CHAR_BIT;
特定于类的常量,可以在类定义中定义静态整数常量,其他类型的常量需要单独的定义或者一个短小的函数。
// widget.h class Widget { static const int defaultWidth = 400; //声明中提供的值 static const double defaultPercent; //定义中提供的值 static const char* Name(){return “Widget”;} }; // widget.cpp const double Widget::defaultPercent = 66.67; //定义中提供的值 const int Widget::defaultWidth; //所需的定义
相关文章推荐
- C++编程规范 编程风格 学习 (2) -- 避免使用宏
- C++编程规范 编程风格 学习 (1) -- 积极使用const
- C++编程规范 编程风格 学习 (5) --总是编写内部#include保护符,绝不要编写外部#include保护符
- (C++编程规范第17条)避免使用”魔数“
- C++编程规范 编程风格 学习 (4) -- 总是初始化变量
- 【编程好习惯】避免使用魔数 推荐
- 学习如何使用 Cookie 编程
- 深入学习java并发编程:Thread类的使用
- angularjs学习之六(angularjs中directive指令的一般编程事件绑定 模板使用等)
- Web编程学习三: 使用SAPUI5来创建Web应用UI
- FLTK学习-6-使用FLUID编程(4)
- 并发编程学习总结(七) :java中synchronized关键字使用详解(1)
- [Linux网络编程学习笔记]FIFO的创建和使用
- C语言编程精髓读书笔记(怎样有效地使用断言和避免自由主义编码)
- C++学习——第8章 使用函数编程
- koltin学习教程 androidstudio 使用koltin 语言编程
- 编程时避免使用 if 语句的五种模式
- 使用 COM 风格的编程接口
- 我的编程学习日志(6)--在C/C++中使用 64 位整数