阅读《编写高质量代码》心得(1)

  1. 在C++中绝对没有出现过void main。如果函数执行到main结束处时没有遇到return语句,编译器会隐式的为你加上return 0(该规则只对main函数适用)。所以不推荐使用上述规则,建议加上return 0。
  2. FALSE/TRUE是int类型,而false/true是bool类型。C++帮我们完成了相关的隐式转换。false和bool一样占用1个字节。
  3. 针对=和==之间的问题, 可以采用良好的代码习惯来避免,如if(0==value)。
  4. 对表达式计算顺序不要想当然,所以不要吝啬使用括号,即使有时并不必要。注意函数参数和操作数的评估求值顺序问题。可以使用显式的、手工指定的中间变量解决问题。
  5. 用宏定义表达式时,用完备的括号完备的保护各个宏参数。如#define ADD(a,b)    ((a)+(b))。使用宏的时候不允许参数发生变化。③用大括号将宏所定义的多条表达式括起来。
  6. 不要忘记指针变量的初始化。编译器一般不会对一般变量进行初始化。当用另一个变量的地址初始化指针变量时,必须在声明指针之前声明过该变量。也可以将其初始化为空指针0(NULL)。对于全局变量来说,在声明的同时,编译器会悄悄完成对变量的初始化。
  7. 在使用逗号分隔表达式时,C++会确保每个表达式都被执行,而整个表达式的值则是最右边表达式的结果。
  8. 因为内存溢出潜在危害很大,所以必须注意和面对这个问题。特别是在网络相关的应用程序中,在调用C语言字符串经典函数(如strpy,strcat,gets等)时,要从源代码开始就提高警惕,尽量追踪传入数据的流向,向代码中的每一个假设提出质疑,在访问数据时注意对于边界数据要特殊情况特殊处理,还要对杜绝使用未初始化指针和失效后未置NULL的”野指针“。
  9. 函数指针在运行时的动态调用(例如函数回调)中应用广泛。但是直接定义复杂的函数指针会由于有太多的括号而使代码的可读性下降。使用typedef可以让函数指针更直观和易维护。拒绝晦涩难懂的函数指针定义,拒绝函数定义中成堆的括号。
  10. 为了避免重复包含头文件,建议在声明每个头文件时采用如下的形式  
    #ifndef_PROJECT_PATH_FILE_H_
    #define _PROJECT_PATH_FILE_H_
    ... ...//声明、定义语句
    #endif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值