標識符是程序員自定義的名稱,用於標識變量、常量、函數、結構體標籤、聯合體標籤、枚舉標籤、類型定義名、標號、宏名等實體。
count、Count、COUNT 是三個不同標識符。int, if, while)。| 模式 | 保留用途 | 示例 |
|---|---|---|
以 _ 開頭 + 大寫字母 | 標準庫內部宏/函數 | _MAX_PATH, _Noreturn |
以 __ 開頭 (雙下劃線) | 編譯器/標準庫內部 | __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 // 宏標識符
int 2nd = 0; — 以數字開頭 ❌int for = 1; — 使用關鍵字 ❌int my-var = 1; — 含連字符 ❌int _Internal = 0; — 以下劃線大寫開頭,風險 ❌