读书笔记——高质量C++/C编程指南

来源:互联网 发布:什么手套保暖 知乎 编辑:程序博客网 时间:2024/05/16 12:56

一、头文件结构:
(1)头文件开头处的版权和版本声明。
(2)预处理块。
(3)函数和类结构声明等。
为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。

#include<filename.h>//引用标准库的头文件(编译器直接将从标准库目录开始搜索)#include"filename.h"//引用非标准库的头文件(编译器将从用户的工作目录开始搜索)

头文件中只存放“声明”而不存放“定义”

二、程序版式:
(1)空行:各函数块之间、函数体内逻辑不密切的语句之间均应加空行分隔。
(2)空格:二元操作符前后均留空格。关键字之后要留空格,象const、virtual、inline、case等关键字之后至少要留一个空格,用于辨析关键字;象if、for、while等关键字之后应留一个空格再跟左号‘(’,以突出关键字。部分“,”、“;”后也要留一个空格。
(3)长行适度拆分。
(4)修饰符:*和&应紧靠变量名,避免歧义。
三、命名规则:
(1)类名和函数名:用大写字母开头的单词组合而成。
(2)变量名:应当使用“名词”或者“形容词+名词”。
全局函数名:应当使用“动词”或者“动词+名词”(动宾词组)。
类的成员函数:应当只使用“动词”,被省略掉的名词就是对象本身。
(3)变量和参数用小写字母开头的单词组合而成。常量全用大写的字母,用下划线分割单词。静态变量加前缀s_(表示static)。
四、表达式和基本语句
1、if语句中各类型变量与零值比较
(1)bool类型:true(非零)/false(0)

bool flag;f(flag);//表示flag为真f(!flag)//表示flag为假

2)int类型:

int a = 1;if(a == 0);if(a != 0);

3)浮点类型:注意精度限制

double/float x;f((x >= -EPSINON)&&(x <= EPSINON))//EPSINON是允许的误差(即精度)

(4)指针类型:

if(p == NULL);//p与NULL显式比较,强调p是指针变量if(p != NULL);if(NULL == p);//与if(p == NULL)与意义相同,但此写法易于避免或发现由于输入粗心产生的问题

对于二者比较并需返回其中一值,可直接:return 三元运算表达式
2、循环语句
效率――降低循环体复杂性
(1)多重循环中,尽量最外侧为最长循环。
(2)逻辑判断尽量在循环之外。
循环变量
(1)不可在for循环体内修改循环变量,防止for循环失去控制。
(2)for语句的循环控制变量的取值尽量采用“半开半闭区间”写法。
3、goto语句:少用、慎用

五、常量――标识符
易修改,提高可读性
1、const与#define:
(1)const:有数据类型,编译时会安全检查,调试
(2)宏常量:无数据类型,仅字符替换,编译预处理时
类内const完全取代宏常量
2、位置:头文件中(公开),定义文件的头部(隐藏)。

原创粉丝点击