学习高质量的c编程指南(程序的板式)
在每个类声明之后、每个函数定义结束之后都要加空行
【规则 2-2-1】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样
的代码容易阅读,并且方便于写注释。
【规则 2-2-2】if、for、while、do 等语句自占一行,执行语句不得紧跟其后。不论
执行语句有多少都要加{}。这样可以防止书写失误。
尽可能在定义变量的同时初始化该变量(就近原则)
如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用
了未被初始化的变量,可能会导致程序错误。本建议可以减少隐患。
【规则 2-4-1】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用
它们的语句左对齐。 【规则 2-4-2】{ }之内的代码块在‘{’右边数格处左对齐。
While (condition)
{
… // program code
}
2.5 长行拆分 【规则 2-5-1】代码行最大长度宜控制在 70 至 80 个字符以内。代码行不要过长,否
则眼睛看不过来,也不便于打印。 【规则 2-5-2】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以
便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。
if ((very_longer_variable1 >= very_longer_variable12)
&& (very_longer_variable3 <= very_longer_variable14)
&& (very_longer_variable5 <= very_longer_variable16))
{
dosomething();
}
将 public 类型的函数写在前面,而将 private 类型的数据写在后面,如示例 8.3(b)
采用这种版式的程序员主张类的设计“以行为为中心”,重点关注的是类应该提供什么
样的接口(或服务)。
我建议读者采用“以行为为中心”的书写方式,即首先考虑类应该提
这是很多人的经验——“这样做不仅让自己在设计类时思路清晰,而
因为用户最关心的是接口,谁愿意先看到一堆私有数据成员!”
命名规则
类名和函数名用大写字母开头的单词组合而成。
例如:
class Node; // 类名
class LeafNode; // 类名
void Draw(void); // 函数名
void SetValue(int value); // 函数名
变量和参数用小写字母开头的单词组合而成。
常量全用大写的字母,用下划线分割单词。
静态变量加前缀 s_(表示 static)。
【规则 2-2-1】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样
的代码容易阅读,并且方便于写注释。
【规则 2-2-2】if、for、while、do 等语句自占一行,执行语句不得紧跟其后。不论
执行语句有多少都要加{}。这样可以防止书写失误。
尽可能在定义变量的同时初始化该变量(就近原则)
如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用
了未被初始化的变量,可能会导致程序错误。本建议可以减少隐患。
【规则 2-4-1】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用
它们的语句左对齐。 【规则 2-4-2】{ }之内的代码块在‘{’右边数格处左对齐。
While (condition)
{
… // program code
}
2.5 长行拆分 【规则 2-5-1】代码行最大长度宜控制在 70 至 80 个字符以内。代码行不要过长,否
则眼睛看不过来,也不便于打印。 【规则 2-5-2】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以
便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。
if ((very_longer_variable1 >= very_longer_variable12)
&& (very_longer_variable3 <= very_longer_variable14)
&& (very_longer_variable5 <= very_longer_variable16))
{
dosomething();
}
将 public 类型的函数写在前面,而将 private 类型的数据写在后面,如示例 8.3(b)
采用这种版式的程序员主张类的设计“以行为为中心”,重点关注的是类应该提供什么
样的接口(或服务)。
我建议读者采用“以行为为中心”的书写方式,即首先考虑类应该提
这是很多人的经验——“这样做不仅让自己在设计类时思路清晰,而
因为用户最关心的是接口,谁愿意先看到一堆私有数据成员!”
命名规则
类名和函数名用大写字母开头的单词组合而成。
例如:
class Node; // 类名
class LeafNode; // 类名
void Draw(void); // 函数名
void SetValue(int value); // 函数名
变量和参数用小写字母开头的单词组合而成。
常量全用大写的字母,用下划线分割单词。
静态变量加前缀 s_(表示 static)。