一、C 程序基本語法結構
1. 主函數 main —— 程序入口
// 標準無參形式
int main(void) {
// 函數體
return 0;
}
// 帶命令行參數形式
int main(int argc, char *argv[]) {
// argc: 參數個數, argv: 參數字符串數組
return 0;
}
- 返回類型 必須為
int(C99 標準),向作業系統報告退出狀態。
void main() 為舊式非標準寫法,現代編譯器會警告。
2. 預處理指令
#include <stdio.h> 等預處理命令通常置於文件頂部,不以分號結尾。
二、語句與語句塊
1. 簡單語句
以分號 ; 結尾。分號是語句的終結符,而非分隔符。一行可寫多語句,一語句可跨多行。
printf("Hello"); x = 1; // 合法但不推薦
2. 復合語句 / 語句塊
用花括號 { ... } 將多條語句包裹為一個整體,用於 if, for, while, 函數體等需要單一語句的上下文。
for (int i = 0; i < 10; i++) {
printf("%d ", i); // 語句塊
sum += i;
}
3. 註釋
- 多行:
/* ... */ (不可嵌套)。
- 單行:
// ... (C99 引入,現代標準通用)。
- 編譯器預處理階段移除註釋,不佔用目標代碼空間。
三、C 程序結構特點
- 由一個或多個 源文件 (.c) 組成。
- 每個源文件包含一個或多個函數。
- 整個程序有且僅有一個
main 函數。
- 標識符、關鍵字間需至少一空白字符分隔(除非有明顯界符如
();,{}[])。
- 聲明與語句以分號結尾;預處理、函數頭、右花括號 不加 分號。
四、標識符命名規範
| 規則 | 說明 |
| 組成字符 | 字母 (A-Z, a-z)、數字 (0-9)、下劃線 _ |
| 首字符 | 必須是字母或下劃線(不能是數字) |
| 大小寫敏感 | Book ≠ book ≠ BOOK |
| 長度限制 | 標準 C 無限制,但編譯器/鏈接器可能有實際限制(如外部名 31/63 字符) |
| 命名建議 | 見名知意:max_count 優於 mc;避免與標準庫名衝突 |
五、關鍵字 (保留字) 分類速覽
關鍵字具有特定語法含義,不可作標識符使用。
- 類型說明:
int, char, float, double, void, struct, union, enum, typedef, const, volatile, restrict, _Bool, _Complex 等。
- 控制流:
if, else, switch, case, default, for, while, do, break, continue, goto, return。
- 存儲類別:
auto, register, static, extern, _Thread_local。
- 其他:
sizeof, sizeof... (C23), alignas, alignof, _Generic, _Static_assert, _Atomic 等。
- 預處理:
#include, #define, #ifdef, #endif 等(技術上屬預處理指令,常被歸類討論)。
掌握關鍵字列表有助於避免命名衝突,理解編譯器錯誤信息(如 “expected identifier before ‘int’” 往往因將關鍵字用作變量名)。
- 上一篇文章: C/C++條件編譯全攻略:#ifdef、#ifndef、#define、#endif 實戰解析
- 下一篇文章: C語言基礎入門:常量與變量完整指南
Copyright ©
程式碼之家 All Rights Reserved