首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言編程風格指南:縮進、大括號、命名與函數設計

     編輯:關於C語言

縮進風格

  • 縮進寬度:8 個字符 (一個 Tab)。4 字符或 2 字符屬於「試圖將 PI 定義為 3」的錯誤做法。
  • 理由:大縮進清晰界定代碼塊邊界,尤其在疲勞時提高可讀性;同時強制限制嵌套層數(超過 3 層即應重構)。
  • 續行縮進:長表達式換行時,第二行再縮進一級(8 字符)。

大括號位置 (K&R 風格)

/* 控制語句:左大括號行尾,右大括號行首 */
if (x == y) {
    do_something();
} else if (x > y) {
    do_other();
} else {
    do_default();
}

/* 函數定義:左大括號獨佔下一行行首 */
int function(int x) {
    body_of_function;
}

/* do-while 特例:右大括號後接 while */
do {
    body;
} while (condition);

原則:K&R 風格減少空行,騰出空間寫註釋;函數特殊對待因其可見性更高。

命名規範

  • 局部變量:短小精悍。循環計數器用 i,臨時值用 tmp。無需 loop_counter 這樣冗長名字。
  • 全局變量/函數:描述性命名。count_active_users() 而非 cntusr()。作用域越大,名字越具體。
  • 拒絕匈牙利命名法:類型編碼進變量名(如 dwLength)屬於「腦子有毛病」——編譯器已檢查類型,命名混淆視覺。
  • 宏/常量:全大寫下劃線 MAX_BUFFER_SIZE。

函數設計原則

  • 短小單一:一屏以內(80x24),只做一件事並做好。
  • 局部變量 ≤ 5-10 個:超過說明函數過於複雜,應拆分。人腦工作記憶極限約 7±2 項。
  • 避免深層嵌套:提前返回、衛語句減少縮進層級。

註釋哲學

  • 解釋「做什麼」而非「怎麼做」。代碼本身應清晰表達邏輯。
  • 函數頭註釋:功能、參數、返回值、副作用、調用約束。
  • 避免函數體內過多行間註釋:若邏輯需大量解釋,說明代碼結構有問題,應重構。
  • 標記技巧/醜陋代碼:/* FIXME: */、/* HACK: */ 供後續重構。

工具鏈配置:GNU Indent 與 Emacs

indent 可自動格式化,但需正確參數:

indent -kr -i8 -ts8 -sob -l80 -bad -bap -nbc -br -brs -ncdb -nce -npcs -nprs -npsl -saf -sai -saw -ncs -nbfda -cp1 -cli0 -cbi0 -cdw -nss -l120 *.c

關鍵參數:-kr (K&R)、-i8 (縮進 8)、-ts8 (Tab 寬 8)。

Emacs 用戶加入 .emacs:

(defun linux-c-mode()
  "C mode with adjusted defaults for Linux kernel."
  (interactive)
  (c-mode)
  (c-set-style "K&R")
  (setq c-basic-offset 8))
(setq auto-mode-alist
  (cons '("/usr/src/linux/.*\\.[ch]$" . linux-c-mode) auto-mode-alist))

總結:風格服務於可讀與可維護

統一風格降低認知負荷,便於團隊協作與代碼審查。**工具自動化執行風格,人專注業務邏輯。**

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved