在 Hello World! 這篇中,我們介紹了基礎的 C 語法。
下面來介紹一下 C 語言這樣寫的理由。
在 #include
後的 header
我們稱作標頭檔,把 header
替換成自己要的標頭檔,
像是 stdio.h
與之後會介紹到的 math.h
和 string.h
等都是標頭檔之一。
header
就是跟程式說你今天要做什麼,程式就會幫你找到對應的功能。
例如今天你需要輸入與輸出,就用 #include <stdio.h>
跟程式說你要這些功能,
程式就會調用它並讓你使用裡面的內容。
但如果你沒有 #include <stdio.h>
,程式就不會讓你使用輸入或輸出的功能。
透過標頭檔,我們可以連結到實現程式功能的函式庫 library
。可以把標頭檔想成電話號碼,函式庫想成接線員,透過撥打電話來得到接線員的協助。
不過調用標頭檔與使用不是絕對的關係,
你可以調用後不使用,但絕對不能不調用就使用,這樣會出錯。
就像是我可以買了飲料後不喝他,但我不能在還沒買到飲料前就喝到飲料,不符合邏輯也喝不到飲料。
錯誤訊息會顯示
error: 'something' was not declared in this scope
意思是 something
在此範圍未被宣告,
這裡的 something
可以被替換成其他東西,像是 scanf
或是 printf
,
IDE 會告訴你是哪一個字詞出錯了。
第一個詞 int
,這是整數的意思。
在 main
函式中,只能用整數型別(int
)返回數值,
這裡返回的數值是指主要程式中的 return 0;
,等等會介紹到這個。
而在 main
函式中的 void
是 空
的意思,等同於什麼也沒有放的 main()
。
但由於 C 語言早期版本設計不夠優良,沒有放 void
可能會在預期外的情況啟動主程式(e.g.帶有參數時,下學期會講),所以記得要加上 void
。
雖然不是整數型別也可以編譯,但 IDE 會跳出 warning
。
編譯器會自動改為整數型別,不過仍建議打上 int main(void)
。
在主程式中輸入你需要的程式功能,不然程式是不會憑空做事的!
為什麼要回傳值?這是為了告訴執行程式的上級—父程序(Parent)—程式有正確執行。
不過 return 0;
不是只能回傳 0 ,也可以回傳其他整數數值,
像是 1 或是非零整數 通常代表程式執行錯誤、65 會回傳 A (ASCII碼),
還有其他在不同系統下具有不同含意的數字。
若不打上
return 0;
,會有兩種可能:
- 編譯器會自動補上
return 0;
。- 遇到左大括號
}
時,回傳 0 。不過 1. 的情況並不是所有編譯器都有,
所以要記得打上return 0;
避免錯誤。
課堂簡報中偶爾會出現 system("pause")
,功用是讓命令視窗停留一陣子不要馬上消失,以便觀察程式的輸出。但它不是必要的,因為新版的 IDE 都有使視窗暫留的功能。
C language