《高质量C++_C编程指南》读书笔记

来源:互联网 发布:vs软件 编辑:程序博客网 时间:2024/05/18 04:27

第一章 文件结构

1  .h文件保存声明,.c文件保存程序的实现(定义)。

2.版权和版本声明

/*

*Copyright(c)2012,novatek                版权信息

*All rights reserved

*

*文件名称:filename.h 文件名称

*文件标识:

*摘要:

*

*当前版本:1.1

*作者:chengengsen

*完成日期:2012.8.27.

*

*取代版本:1.0

*原作者:xxx

*完成日期:xxxx.xx.xx

*/

3.头文件(.h)的结构

a版权和版本声明

b预处理块

1用#ifndef/define/endif防止头文件重复被引用

2用#include<filename.h>来引用标准库的头文件、用#include"filename.h"来引用非标准库头文件

c函数和类结构声明等

1头文件只存放声明,不存放定义

2.不提倡用全局变量,尽量不要再头文件出现extern int value这类声明

4.定义文件(.c)的结构

a.版权和版本声明

b.对头文件的引用

c.程序的实现体

5头文件的作用

a.通过头文件调用库功能,隐藏源码。

b.头文件能加强类型安全检查。

6.目录结构

头文件保存到include目录,定义文件保存到source目录


第二章 程序的板式

1 空行

a.每个类生声明之后、函数定义结束之后都要加空行

b.每个函数体内,逻辑上关系密切的语句之间不加空行,其他地方赢家空行。

2.代码行

a.一行代码只做一件事情,如只定义一个变量或者只写一条语句。

b. if、for、while、do等语句各自占一行

c.尽量在定义变量的同时初始化该变量(就近原则)

3.代码行内的空格

a关键字之后要留空格

const 、virtual、 inline、 case 关键字之后至少要留一个空格,否则无法辨析关键字

if、for、while等关键字之后应留一个空格再跟左括号,以突出关键字。

b函数名之后不要留空格,紧跟左括号,以和关键字区别

c.逗号之后要留空格,如funciton(x, y, z)。如果‘;’  不是一行的结束的符号,其后要留空格。如for (A; B; C)

d赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符前后应加空格。

4对齐

a { 、}应给各占一行,并且同一列。

5长行拆分

a代码行长度控制在70字符以内

b根据逻辑关系进行代码行分行

6修饰符的位置

a.*、&应该紧靠变量名

7注释

a版本、版权声明

b函数接口说明

c重要的代码行或段落提示

8 类的板式(过了……)


第三章 命名规则

匈牙利法--在变量和函数名中加入前缀以增进人们对程序的理解

如字符都以ch为前缀, 指针都以p为前缀。一个变量的前缀是pppch,表明它是指向字符指针的指针的指针

a最好用英文或其组合,并且用词准确

b最小的长度表达最大的信息量

c命名规则尽量与所采用的操作系统或者开发工具风格保持一致

windows标识符通常采用大小写的混排方式。如AbbCdd

unix标识符通常采用小写加下划线的方式。如add_child

d不出现标识符完全相同的局部和全局变量

e变量名应该适用“名词” 或者 “形容词”+“名词”

f全局函数的名字应当使用动词或者动词+名词

g避免标识符中出现数字编号


第四章 表达式和基本语句

1 代码中运算符较多是,用括号确定表达式的操作顺序,避免使用默认的优先级

2复合表达式

a不编写太复杂的复合表达式

b不编写有多用途的 复合表达式

3if语句

a不可以将布尔变量直接与TRUE、FALSE或者1、0进行比较

直接用if(flag)判断

b整数变量用 == 或 != 直接与0做比较

if (value == 0)

c不可以用浮点变量用“==”或者“!=”与任何数字比较
if (x >= -EPSINON )&&(x<=EPSINON)

d指针变量用“==”或者“!=”与NULL比较

if (p == NULL)

e if (NULL == p)防止出现赋值语句的错误





原创粉丝点击