《高质量的C/C++编程规范》学习
���录
一、编程规范基础知识
1、头文件
2、程序的板式风格
3、命名规则
二、表达式和基本语句
1、运算符的优先级
2、复合表达式
3、if语句
4、循环语句的效率
5、for循环语句
6、switch语句
三、常量
1、#define和const比较
2、常量定义规则
四、函数设计
1、参数规则
2、返回值规则
3、函数内部实现规则
4、断言
五、内存管理
1、内存分配
2、指针与数组
3、free和delete
4、动态内存释放
5、内存耗尽
6、malloc和free使用
一、编程规范基础知识
1、头文件
(1)防止头文件被重复包含
首先,和大家聊一聊头文件为什么会被被重复包含呢。这一错误操作主要是因为include嵌套造成的。举个例子,在a.h文件中#include "c.h",而在b.c文件中#include "a.h"和#include "c.h"。此时,就造成了c.h重复包含。
头文件被重复引用会引起哪些后果呢?有些头文件重复引用,只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些,但是对于大工程而言编译效率就是很重要的了;有些头文件重复包含,会引起编译错误,比如在头文件中定义了全局变量或写了函数的实现而不是声明(虽然这种方式不被推荐,但确实是C规范允许的),这种会引起重复定义。
那,么如何避免头文件被重复包含呢?我们可以使用#ifndef/#define/#endif方式,下面我们给出该用法如何来使用:
#ifndef __XXX_H__ //意思是 "if not define __XXX_H__" 也就是没包含XXX.h #define __XXX_H__ //就定义__XXX_H__ ... //此处放头文件中本来应该写的代码 #endif //否则不需要定义
(2)引用头文件
- 头文件:引用标准库的头文件,编译器将,从标准目录开始搜索。
- " "头文件:引用非标准库的头文件,将从用户的工作目录开始搜索,用户自己创建的头文件。
2、程序的板式风格
清晰、美观,是程序风格的重要构成因素。
(1)空行
我们在编程时可以使用空行(起着分隔程序段落的作用)。关于空行,和大家聊一下以下三点规则:空行不会浪费内存;在每个类声明之后、每个函数定义结束之后都要加空行;在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。
(2)代码行
一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。关于代码行,主要是以下几点规则:
规则一:if、for、while、do等语句独自占一行,执行语句不得紧跟其后。不论执行语句有多少后面都要加{}。这样可以防止书写失误。
规则二:关键字之后要留空格。像 const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。像 if、for、while 等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。
规则三:如果‘;’不是一行的结束符号,其后要留空格,如for(initialization; condition; update)。
规则四:赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=” “>=”、“