前言
养成良好的编程习惯和书写良好风格的代码,这两样是在C语言学习中,大部分人往往会忽略的地方。在学校中,绝大多数老师不会特别强调要如何写代码让程序的可读性更好,如何规范的对标识符进行命名。在书籍中,一些教材的内容也常常伴随着一些不良的代码风格和编程习惯,这对于模仿作者编写程序的读者无疑是“自废武功”。在一位前辈的推荐下,我阅读了《高质量c/c++编程指南》这本书且受益匪浅。下面,我将总结我在阅读该书第三章的一些收获。
一、共性规则
标识符的命名最好是使用英文或其组合,这样命名不仅中国人能看懂,外国人也能够看懂。不要使用汉语拼音来命名,更不要使用英文单词与汉语拼音。下面我通过代码来举例:
//当我们需要编写一个函数求闰年
//不好的命名风格
int shirunnian(int y)
{
...
}
int is_run_year(int y)
{
...
}
//良好的命名风格
int is_leap_year(int y)
{
...
}
int IsLeapYear(int y)
{
...
}
//我们应该采用Unix风格或者Windo风格来进行函数命名
//英语单词应当用词准确
我们在代码中应该避免只使用大小写来区别一些类似的标识符,如
//这里变量x和X容易混淆
int x,X;
//这里函数zoo和ZOO容易混淆
void ZOO(int x);
void zoo(int X);
我们应该尽量避免全局变量与局部变量重名。虽然两者的作用域不同且不会发生语法错误,但是这样容易令人误解。
int a = 10;//全局变量
int main()
{
int a = 20;//局部变量
}
//尽量避免全局变量与局部变量重名
我们要避免添加一些无逻辑意义的数字编号。因为无逻辑意义的数字编号简单且不需要思考,使我们偷懒、不费脑筋的命名最好方式,如
int main()
{
int num1 = 0;
int num2 = 0;
int num3 = 0;
num3 = num2 + num1;
}
二、简单的windos程序命名规则
类名和函数名用大写字母开头的单词进行组合
class Node;
void GetMax();
变量和参数用小写字母开头的单词进行组合
int age;
_Bool flag;
常量使用全大写字母,用_下划线分割
const int MAX = 10;
const int MAX_LENGTH = 20;
静态变量前加 s_(以表示static)
static int s_val = 10;
不得已需要全局变量时,则使全局变量加前缀 g_(表示 global)
int g_a = 10;
命名指针变量的可以在变量名前加p,以表示指针变量
int* pa = NULL;
char* pc = NULL;
总结
我认为使用良好的命名风格是养成良好编程的习惯的重要一环。学习好的编程风格可以使我们的“内功”大增,最后希望你看完之后能有所收获。