C Program Structure

程式基本結構

程式語言一 · 導覽投影片

→ / space 前進  回 Esc 總覽 F 全螢幕
這是導覽:建框架。完整內容在 PDF,可跑範例在 index。

01五行=四個必備元素

# include <stdio.h>   // ① 引入函式庫
int main(void) {       // ② 唯一入口
    printf("Hi\n");    // ③ 執行動作
    return 0;          // ④ 回報正常結束
}

每個程式有且只有一個 main;作業系統從它第一行開始跑。這五行每行你都要能解釋。

02編譯四階段:哪階段抓哪種錯

階段做什麼抓到的錯
前處理展開 #include/#define、去註解gcc -E 看結果
編譯C → 組合語言語法錯誤
組譯→ 機器碼 .o(少直接報錯)
連結合併函式庫(printf 等)找不到函式 undefined reference

gcc hello.c -o hello 一步跑完四階段。

03printf:格式符 + 跳脫字元

格式符型別範例 → 輸出
%dint42
%.2ffloat3.14
%c / %schar / 字串A / Hi

\n 換行、\t Tab。其餘字元原樣輸出、不自動加空格printf("A%dB%dC",1,2)A1B2C

04scanf:別忘了 &

int age;
scanf("%d", &age);   // 變數前一定要加 &
最常見的錯scanf("%d", age)&。scanf 要變數的位址才寫得回去,漏了可能直接 crash,而且編譯器不一定警告。

05Warning ≠ Error

Error:編譯失敗、產不出執行檔(語法錯、缺 ;)。
Warning:能編譯但有疑慮(格式符型別不符),常是真 bug,別忽略

所以標準編譯加 -Wall,把警告全打開並清掉。

06速記易錯

  • ▸ 忘 #include <stdio.h> 用 printf → implicit declaration
  • scanf&
  • ▸ 格式符型別不符(%d 印 float)→ 未定義行為
  • ▸ 兩個 int 相除是整數除法(5/2=2),要浮點得轉型或用 2.0
next

接著動手

PDF 講義學完整內容 → 打開 index 改數字跑 printf/scanf → 本地練習 編譯執行 → Quizlet + 測驗卷 自測 ≥ 90%。
完整內容 PDF · 可跑範例 index · 動手 本地練習