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

C/C++ 編碼規範:排版、命名、邏輯與可測試性工業標準

     編輯:關於C語言

背景:為何需要強制規範

  • 多人協作專案,風格不一導致可讀性驟降、維護成本激增。
  • Bell Labs 研究:編碼階段錯誤佔 50%,其中邏輯/接口/可讀性問題佔半數以上。
  • 推行規範後編碼錯誤率從 50% 降至 10%,測試成本大幅下降。

排版風格(強制規則)

規則 1:縮進 4 空格,禁用 Tab

統一視覺寬度,避免編輯器顯示差異。

規則 2:運算符前後空格

  • 雙目運算符(= + - * / % && || & | ^ << >> == != < > <= >=)前後各一空格
  • 單目運算符(! ~ ++ -- &(取址))緊貼操作數
  • , ; 後一空格;()[]->. 不加空格
  • 最內層括號內側不加空格

規則 3:大括號獨佔行且左對齊

// 標準風格
if (cond)
{
    stmt;
}

for (...)
{
    stmt;
}

void Func()
{
    stmt;
}

規則 4:邏輯塊間空行分隔

變量聲明區、控制語句前後、函數調用塊之間各留一空行。

規則 5:控制語句獨佔行,強制加大括號

// 禁用單行
if (p==NULL) return;

// 標準
if (p == NULL)
{
    return;
}

規則 6:長行(>80 字符)換行縮進

memset(pData->pData + pData->nCount, 0,
       (m_nMax - pData->nCount) * sizeof(LPVOID));

規則 7:一行一語句

禁用 a=1; b=2; 或語句拆行破壞語義單元。

規則 8:結構體賦值等號對齊

st.x = 10;
st.y = 20;
st.name = "test";

命名規範(建議)

  • 類/結構:PascalCase(CUserInfo)
  • 函數/方法:CamelCase 或 lower_case 統一
  • 變量:lower_case + 前綴(m_ 成員、g_ 全局、p_ 指針)
  • 常量/巨集:UPPER_SNAKE_CASE
  • 禁用匈牙利標記法(現代 IDE 已足夠)

邏輯與效率

  • 函數單一職責,< 50 行
  • 參數 < 5 個,超過用結構體
  • 優先 const 引用傳遞大對象
  • 循環不變量外提
  • 避免過早優化,先正確後快

接口設計

  • 錯誤碼統一枚舉,禁用魔術數字
  • 輸出參數放最後,輸入參數在前
  • 非空指針斷言 assert(p)
  • C 接口用 extern "C",穩定 ABI

可測試性

  • 依賴注入,避免全局狀態
  • 函數可獨立單元測試
  • 關鍵路徑有日誌/斷點鉤子
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved