Linux下C语言编码的风格

来源:互联网 发布:java类中的方法 编辑:程序博客网 时间:2024/06/05 05:24
 Linux下C语言编码的风格
Linux 作为 GNU家族的一员,其源代码数以万计,而在阅读这些源代码时我们会发现,
不同的源代码的美观程度和编程风格都不尽相同。
例如下面的glibc 代码:
static voidrelease_libc_mem (void)
{
/*Only call the free function if we  still are running in mtrace mode. */
if (mallstream != NULL)
__libc_freeres ();
}
 
或者Linux 的核心代码:
static int do_linuxrc(void * shell)
{  
static char *argv[] = { "linuxrc" ,NULL,};
close(0);close(1);close(2);
setsid();
(void) open("/dev/console",O_RDWR,0);
(void) dup(0);
(void) dup(0);
return execve(shell ,argv ,envp_init);
}
 
比较一下,上面的这些代码是否看起来让人赏心悦目?而有些程序员编写的程序由于没有很
好的缩进及顺序,让人看起来直皱眉头。编写干净美观的代码,不仅仅使代码更容易阅读,
还能使代码成为一件艺术品。与微软的匈牙利命名法一样,Linux 上的编程主要有两种编程
风格:GNU风格和Linux 核心风格,下面将分别介绍。
 
z   下面是基于GNU的编程风格,编写代码时应遵循这些基本要求。
1.   函数开头的左花括号放到最左边,避免把任何其他的左花括号、左括号或者左方括号放
到最左边。
2.   尽力避免让两个不同优先级的操作符出现在相同的对齐方式中。
3.   每个程序都应该有一段简短地说明其功能的注释开头。例如:fmt - filter for simplefilling
of text 。
4.   请为每个函数书写注释,以说明函数做了些什么,需要哪些种类的参数,参数可能值的
含义以及用途。
5.   不要在声明多个变量时跨行。在每一行中都以一个新的声明开头。
6.   当在一个if 语句中嵌套了另一个if-else 语句时,应用花括号把 if-else 括起来。
7.   要在同一个声明中同时说明结构标识和变量,或者结构标识和类型定义(typedef) 。 
8.   尽力避免在if 的条件中进行赋值。
9.   请在名字中使用下划线以分隔单词,尽量使用小写;  把大写字母留给宏和枚举常量,
以及根据统一的惯例使用的前缀。
10.  命令一个命令行选项时,给出的变量应该在选项含义的说明之后,而不是选项字符之后。
 
z   下面是 Linux 内核所要求的编程风格:   
1.   注意缩进格式。     
2.   将开始的大括号放在一行的最后,而将结束大括号放在一行的第一位。   
3.   命名系统。变量命名尽量使用简短的名字。  
4.   函数最好要短小精悍,一个函数最好只作一件事情。
5.   注释。注释说明代码的功能,而不是说明其实现原理。
 
看了上面两种风格的介绍,读者是不是觉得有些太多了,难以记住? 不要紧,Linux 有
很多工具来帮助我们。除了vim 和emacs 以外,还有一个非常有意思的小工具 indent 可以
帮我们美化C/C++ 源代码。
下面用这条命令将Linux  内核编程风格的程序 quan.c 转变为 GNU 编程风格,
代码如下:
[david@localhost ~]$ indent -gnu quan.c
 
利用indent 这个工具,大家就可以方便地写出漂亮的代码来。
 
原创粉丝点击