語句行首最好是8個字元的縮排
switch
(suffix)
一行只有一條語句,錯誤示範如下:
if
(condition) do_this;
長度超過80另起一行,但不要折斷字串
非函式語句,左花括號放在最後,且與前面空一格
if
(x is true)
函式語句,左花括號另起一行
int
function
(int x)
do-while語句
do
while
(condition)
;
if-else語句
if
(x == y)
else
if(x > y)
else
單條語句不需要使用花括號
if
(condition)
do_this()
;else
do_that()
;
while
(condition)
關鍵字if, switch, case, for, do, while後面接空格
if
(condition)
action()
;
sizeof, typeof, alignof等關鍵字後面不需要接空格
s =
sizeof
(struct file)
;
括號內兩邊不需要加空格,錯誤示範如下:
s =
sizeof
(struct file )
;
指標符號要挨著資料名
char
*linux_banner;
unsigned
long
long
memparse
(char
*ptr,
char
**retptr)
;char
*match_strdup
(substring_t *s)
;
二元或三元運算子= + - < > * / % | & ^ <= >= == != ? :兩邊要加空格
s = a + b;
一元運算子& * + - ~ !不用加空格
*b =
&a;
遞增++和遞減–不需要加空格
a++
;
結構體相關.和->不用加空格
file.
open()
;
盡量避免混合大小寫,變數名要求簡潔明瞭,如臨時變數定義:
int tmp;
全域性變數或函式可以使用比較詳細的描述性的名稱
count_active_users()
;
區域性變數盡量簡短,計數變數的定義:
int i;
盡量避免使用typedef定義結構體或結構體指標,如下面的vps_t,讓人完全看不出來a是個什麼型別的變數
vps_t a;
使用如下方式來宣告結構體或結構體指標,清晰明了
struct virtual_container *a;
對外不透明的結構體或結構體指標型別可以用typedef來定義,如定義乙個pte_t型別,你不需要了解它的具體內容
一些整形資料可以用typedef加以區分,如u8、u16、u32分別被定義成不同長度的整型資料
乙個函式的區域性變數盡量不要超過5-10個,否則就該思考如何將其分解成更小的部分
函式與函式之間隔一行
匯出函式緊隨函式其後
int
system_is_up
(void
)export_symbol
(system_is_up)
;
在函式原型中,寫全引數名及其資料型別注釋一般放在函式的前面,描述函式的功能,風格如下:
/*
* this is the preferred style for multi-line
* comments in the linux kernel source code.
* please use it consistently.
* * description: a column of asterisks on the left side,
* with beginning and ending almost-blank lines.
*/
巨集定義常量一般為大寫
#define constant 0x12345
巨集定義函式可以用小寫,包含多條語句時,寫在do-while塊中
#define macrofun(a, b, c) \
do while (0)
不要在巨集定義中使用return語句,錯誤示範:
#define foo(x) \
do while (0)
巨集定義不能依賴本地變數,錯誤示範:
#define foo(val) bar(index, val)
巨集定義要使用括號以確定優先順序
#define constant 0x4000
#define constexp (constant | 3)
如果函式名是乙個動作或命令,則執行成功返回0,否則返回其他;如果函式名是詢問,則執行成功返回1,否則返回0
在#endif後面給上注釋
#ifdef config_something..
.#endif
/* config_something */
參考資料: 語言編碼風格
打算重新學習一下程式語言,已c語言為例,本類文章主要記述學習過程。c語言的程式設計風格,好的程式設計風格能讓人一眼看明白 的含義,並且讓 就像是藝術品一樣精彩,一下為參考一下優秀的注釋內容和 內容來使自己的 清晰易懂,便於維護 這是乙個事例程式,版權屬於cc 使用陣列的乙個例子 include vo...
C語言編碼風格(四) 函式
每個函式都應該設計得盡可能簡單,簡單的函式才容易維護。應遵循以下原則 實現乙個函式只是為了做好一件事情,不要把函式設計成用途廣泛 面面俱到的,這樣的函式肯定會超長,而且往往不可重用,維護困難。函式內部的縮排層次不宜過多,一般以少於4層為宜。如果縮排層次太多就說明設計得太複雜了,應考慮分割成更小的函式...
學習linux的編碼風格
對於編碼,每個碼農或許都會有自己的一套風格,很多人可能對編碼風格壓根就不關心,因為最終編譯器編譯出來的目標 並不會受影響。但是在開發乙個大型專案時,花費時間成本最多的永遠是開發者們之間的溝通與交流。保持編碼風格的一致性可以在很大程度上提高編碼效率,可以讓其他人更容易讀懂你的 也讓你更容易讀懂其他人的...