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

程式設計命名慣例全解析:匈牙利、駝峰、帕斯卡、底線四大流派與實務建議

     編輯:關於C語言

命名風格大比拚:為什麼一致性比選擇更重要?

好的命名是程式碼最廉價的文件。本文系統整理四大主流命名法、縮寫慣例、變數/函數/常數/巨集的具體規範,並給出跨團隊協作的決策框架。

四大命名法派系

命名法特徵範例適用場域
匈牙利命名法前綴編碼型別/屬性 + 首字大寫單詞lpszStr (長指標、以零結尾字串)Windows API、MFC、COM、早期 Microsoft 技術棧
駝峰命名法首字小寫,後續單詞首字大寫printEmployeePaychecks()Java、JavaScript、C# 區域變數/方法、Swift、Go
帕斯卡命名法所有單詞首字大寫DisplayInfo(), UserNameC# 類別/屬性/公用方法、.NET 框架、TypeScript 介面
底線命名法全小寫 + 底線分隔tic_init(), g_total_countC 語言、Linux 核心、GNU 專案、Python (PEP 8)、Rust

C/C++ 專案推薦規範(底線派系擴充)

1. 函數命名:模組_動作 或 模組_動作_對象

tic_init()           // 模組 tic,動作 init
adc_is_busy()        // 謂語 is_busy,模組 adc
uart_tx_char()       // 模組 uart,動作 tx,對象 char
timer2_isr()         // 中斷服務常式固定後綴 _isr

2. 變數命名:全小寫 + 底線

類別前綴範例說明
區域變數無length, test_offset單字母 i,j,k 限用於迴圈索引
臨時變數無tmp短生命週期,勿濫用
靜態區域變數s_static int s_lastw;標示 static 儲存期
全域變數 (外部可見)g_void (*g_capture_hook)(void);警示:跨檔案可見,需謹慎使用
全域變數 (模組內部)s_ 或 無前綴 + staticstatic int s_module_state;檔案作用域,配合 static

3. 常數與巨集:全大寫 + 底線,模組前綴防衝突

#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

// 類函數巨集採函數命名風格
#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)

常用英文縮寫對照表 (節錄)

完整單字縮寫完整單字縮寫
bufferbuf/buffpointerptr
countcntreceiverecv
destinationdst/destsourcesrc
initializeinittemporarytmp/temp
lengthlenvalueval
messagemsgindexidx
numbernumregisterreg
previouspre/prevreturnret

混合風格實務策略

  1. 專案統一:新專案立即在 CONTRIBUTING.md 或 .clang-format 定義標準,CI 強制檢查。
  2. 模組邊界隔離:第三方庫保持原風格,不要重構外部代碼命名,僅在介面層做適配。
  3. 語言慣例優先:C 用底線,C# 類別用帕斯卡/方法用駝峰,Java 全駝峰,Python 底線,Rust 類型帕斯卡/函數底線。
  4. 工具自動化:clang-tidy、cpplint、golint、eslint、ruff 整合至編輯器與 CI。

避坑指南

  • 避免 l (小寫 L) 與 1、O 與 0 混淆
  • 避免僅大小寫區分:count vs Count
  • 避免保留字/關鍵字:class、template、virtual
  • 巨集名稱全大寫,防止與變數/函數衝突
  • 布林變數建議 is_/has_/can_/should_ 前綴:is_valid, has_error

命名規範沒有銀彈,**一致性**才是核心價值。團隊共識 > 個人偏好,工具強制 > 口頭約定,漸進統一 > 一次性大重構。

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