〖學習筆記〗cs50 — week1 : C

Shih Ting, Tai
Sep 26, 2021

--

課程大綱1. 程式概念(Scratch)
2. 從概念到語法(Scratch vs C)
3. CMD(Command line) 指令
4. 從寫 code 到執行(Compiler)
5. 資料型態(int, char, overflow, float)
6. 抽象化 (Abstraction)

從概念到語法 (Scratch vs C)

  • 程式進入點 int main(void)

在Scratch裡面,要點下綠旗才開始執行程式積木。這個動作有一點類似 int main(void)這串,每個C語言程式的開頭都會有這串,可視為程式的進入點。

int:整數 integer的意思,意思是程式執行完後,會回傳一個整數給系統。
void:虛無、空白的意思,意思是在main()裡面不要放入任何參數。
  • 印出 printf()

printf指print,f是formatted的意思,就是會按照格式印出來

Ex:printf("hello, %s/n", name) //hello, (name)

%s 叫做placeholder,它有各種型態,如%c、%f、%i,對應到不同的資料型態。使用方法就是放在引號裡面,然後在引號外面逗點,再寫上你要放的變數。

CMD(Command line) 指令

  • pwd:Print Working Directory 印出(現在資料夾)所在的路徑
  • ls:List Segment 列出(現在資料夾)底下的所有檔案
  • cd (資料夾名稱):Change Directory 切換至(資料夾)

Ex:cd hello.ccd ../ 切換到上一層

  • mkdir (資料夾名稱) /rmdir (資料夾名稱):MaKe DIRectory / ReMove DIRectory 新建/刪除資料夾
  • rm (檔案名稱):ReMove 刪除檔案
  • cp (檔案名稱):CoPy 複製檔案
  • mv (檔案名稱.副檔名) (路徑):MoVe 移動檔案位置

Ex:mv hello.c ~/cs2021/pset1

  • mv (原檔案名稱.副檔名) (新檔案名稱.副檔名):MoVe 修改檔案名稱

Ex:mv hello.c world.c

  • man:MANual 使用手冊

程式 compiler 的四個階段

  1. Preprocessing 預處理:檢查語法、處理#include(把函式庫的程式碼貼過來)Ex: clang -E (檔案名稱)
  2. Compile 轉譯:把C的程式碼轉成組合語言 Ex: clang -S (檔案名稱)
  3. Assembling 編譯:把組合語言轉成機器語言(2進位的機器碼machine code)
  4. Linking 組合:把你的code、系統的code、cs50的code全部組合在一起,產生一個2進位檔案a.out,或者任何你想取的名字。

Ex: xxd -l 40 -c 10 (檔案名稱)

由於 C 語言是編譯式語言,所以每次都要要依賴編譯器(compiler)將程式編譯成機器碼。這樣的好處是執行速度比較快。直譯式語言,不需要編譯器,在執行時會一行一行編譯,速度會稍微慢一點,好處是可以馬上測試,就會知道有沒有哪邊打錯。 Ex: Python

參考資料:

CS50 課程導讀心得

https://vocus.cc/article/5f24f901fd89780001477fae

--

--

Shih Ting, Tai
Shih Ting, Tai

Written by Shih Ting, Tai

Enhance overall happiness by improving human-computer interaction to benefit people.

No responses yet