愛悠閑 > Linux下C語言編碼的風格

Linux下C語言編碼的風格

分類: linux  |  標簽: linux,語言,c,編程,工具,emacs  |  作者: thanklife 相關  |  發布日期 : 2014-08-12  |  熱度 : 229°
 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 編程風格, 代碼如下: [[email protected] ~]$ indent -gnu quan.c   利用indent 這個工具,大家就可以方便地寫出漂亮的代碼來。  


快乐彩中奖说明