摘要:
当心文件 I/O 有错误。 阅读全文
摘要:
当心忘记编写错误处理程序,当心错误处理程序本身有误。 阅读全文
摘要:
当心变量发生上溢或下溢,数组的下标越界。 阅读全文
摘要:
当心数据类型转换发生错误。 尽量使用显式的数据类型转换(让人 们知道发生了什么事),避免让编译器轻悄悄地进行隐式的数据类型转换。 阅读全文
摘要:
当心变量的初值、缺省值错误,或者精度不够。 阅读全文
摘要:
变量(指针、数组)被创建之后应当及时把它们初始化,以防止把 未被初始化的变量当成右值使用。 阅读全文
摘要:
当心那些视觉上不易分辨的操作符发生书写错误。 我们经常会把“==”误写成“=”,象“||”、“&&”、“<=”、“>=”这类符号也很 容易发生“丢 1”失误。 然而编译器却不一定能自动指出这类错误。 阅读全文
摘要:
不要追求紧凑的代码,因为紧凑的代码并不能产生高效的机器码。 阅读全文
摘要:
有时候时间效率和空间效率可能对立,此时应当分析那个更重要, 作出适当的折衷。 例如多花费一些内存来提高性能。 阅读全文
摘要:
先优化数据结构和算法,再优化执行代码。 阅读全文
摘要:
在优化程序的效率时,应当先找出限制效率的“瓶颈”,不要在无关 紧要之处优化。 阅读全文
摘要:
以提高程序的全局效率为主,提高局部效率为辅。 阅读全文
摘要:
不要一味地追求程序的效率,应当在满足正确性、可靠性、健壮性、 可读性等质量因素的前提下,设法提高程序的效率。 阅读全文
摘要:
如果输入参数采用“指针传递”,那么加 const 修饰可以防止意外地改动该指针,起 到保护作用。 阅读全文
摘要:
若在逻辑上 A 是 B 的“一部分”(a part of) ,则不允许 B 从 A 派生, 而是要用 A 和其它东西组合出 B。 阅读全文
摘要:
看起来很简单,但是实际应用时可能会有意外,继承的概念在程序 世界与现实世界并不完全相同。 阅读全文
摘要:
若在逻辑上 B 是 A 的“一种”(a kind of ),则允许 B 继承 A 的功 能和属性。 例如男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种。 那么类 Man 可以从类 Human 派生,类 Boy 可以从类 Man 派生。 阅读全文
摘要:
如果类 A 和类 B 毫不相关,不可以为了使 B 的功能更多些而让 B 继承 A 的功能和属性。 不要觉得“白吃白不吃”,让一个好端端的健壮青年无缘无故地吃人参补身体。 阅读全文