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

C語言標識符詳解:命名規則、保留字與最佳實踐

     編輯:C 語言問答

標識符:給變量、函數、類型起名字的規則

定義

標識符是程序員自定義的名稱,用於標識變量、常量、函數、結構體標籤、聯合體標籤、枚舉標籤、類型定義名、標號、宏名等實體。

命名規則 (C11 §6.4.2)

  • 由字母 (A-Z, a-z)、數字 (0-9)、下劃線 (_) 組成。
  • **首字符不能是數字**。
  • **區分大小寫**:count、Count、COUNT 是三個不同標識符。
  • 長度無標準限制,但編譯器實現通常支持至少 63/127/4095 字符 (外部/內部/宏)。
  • 不能使用關鍵字 (如 int, if, while)。

保留標識符 (避免使用,行為未定義)

模式保留用途示例
以 _ 開頭 + 大寫字母標準庫內部宏/函數_MAX_PATH, _Noreturn
以 __ 開頭 (雙下劃線)編譯器/標準庫內部__builtin_expect, __attribute__
以 _ 開頭 (文件作用域)標準庫外部鏈接名_tmpnam

最佳實踐:用戶代碼不要以下劃線開頭,避免與實現衝突。

命名風格建議 (業界通用)

// 變量/函數: snake_case
int user_count;
void calculate_total();

// 常量/宏: UPPER_SNAKE_CASE
#define MAX_BUFFER_SIZE 4096
const int DEFAULT_PORT = 8080;

// 類型/結構體標籤: PascalCase 或 _t 後綴
typedef struct Node_t Node;
struct UserInfo { ... };

// 文件靜態/私有: 以模塊前綴區分
static int net_buf_size;  // 或 net_buf_size_

例子

int score = 100;           // 變量標識符
const double PI = 3.14159; // 常量標識符
void sort_array(int *a, int n); // 函數標識符
struct Student { ... };    // 結構體標籤標識符
typedef unsigned int uint32; // 類型定義標識符
#define DEBUG 1            // 宏標識符

常見錯誤

  1. int 2nd = 0; — 以數字開頭 ❌
  2. int for = 1; — 使用關鍵字 ❌
  3. int my-var = 1; — 含連字符 ❌
  4. int _Internal = 0; — 以下劃線大寫開頭,風險 ❌
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved