前幾天剛學兩章 Python,覺得 Python 很棒(雖然具體哪裡棒還說不上來)。無意間看到「C 語言可操作硬體」,被定位為中級語言,於是決定 C、Python 同步學習——反正純粹為了樂趣,無壓力,膽子就大了。請別把我想成某漫畫裡那隻「猴子」!
以前覺得電腦好奇怪:怎麼用二進制表示萬物?搜尋後明白:不同編碼賦予不同含義。電腦大腦只認二進制,幸好計算快,不然真「笨」。世界首個程式是女性編寫,當時必是用二進制——好厲害!
早期二進制太長易錯,改用十六進制表示(ADA 當時用哪種?)。後來覺得仍麻煩,出現匯編語言:給指令取「外號」,一一對應二進制。但匯編仍繁瑣,夢想像說話一樣寫程式,於是誕生了 C 語言——更接近自然語言。電腦不懂 C,所以需要編譯器(gcc、cl 等):先將 C 轉匯編,再轉二進制,電腦才能執行。
#include <stdio.h>
int main(void)
{
printf("Hello World! ");
return (0);
}
初看頭暈,全是 Python 沒有的東西,必須仔細研讀。
#include <stdio.h>做事皆有工具包:電工有電工包,木匠有木工包。想在螢幕輸出,需要「輸出包」。#include 將 stdio.h 文件插入此處,<> 指定從標準路徑尋找。stdio.h 定義了輸出(及輸入)工具——其實不止輸出,還有輸入等,這裡一次全拿過來(略顯浪費)。
int main(void)main 後跟 () 表示函數,int 為返回型別。函數像工具包裡「有生命的小工具」:餵入 void,吐出 int,可重複使用。但 main 特殊:它是用戶入口函數,通常只執行一次。VC 真正入口是 mainCRTStartup(),在呼叫 main() 前已完成命令列準備、OS 版本獲取、I/O 初始化、環境變量、全域變量初始化、條件編譯等。Win 程式入口為 WinMain(),主控台為 main()。main() 執行完,程式才 exit;它其實是倒數第二個函數,但程式員可操作權限從這裡開始。
{ 與 }一對大括號代表一個代碼塊,類似 Python 的縮進(暫時這麼理解)。
printf("Hello World! ");從 stdio.h 取出 printf 這個「輸出小工具」,在螢幕列印字串——好神奇!
return (0);系統要求 main 幹完活必須「吐」點東西回去,0 代表正常結束。但 printf 也應有返回值?暫時不知,記下來日後再解。