課程敘述
C語言幾乎是當代所有語言的基礎。無論是Ruby, Python(cPython), PHP 或是 Node.js所依賴的V8引擎,裡面都是大量的C語言與C++語法所構成。更不用說常見的作業系統Linux核心和他的變化 - Android系統,甚至是蘋果的iOS與MacOS系統,都含有大量的C語言及其家族程式。
即使現在較多人提倡的是快速開發,消耗硬體資源換取工程師寶貴的時間。但還是會有很多進階的情況,是必須進入到核心的部分去調校程式。
在系統資源較缺乏的裝置上 - 例如物聯網相關家電產品,C語言(及其家族程式)幾乎是唯一的工業 / 商業選項。
畢竟網站主程式多半是只給一台電腦伺服器使用,而產品型商品程式則相反,量產幾乎都是萬台起跳。單一裝置即使只節省一點零件成本,集合起來的利潤也會相當的高。
所以就工業/商業上,即使新興語言在撰寫與理解上佔有優勢,也很難在短時間取代C語言這"物理"上的優勢。
課程難度
入門,此課程不需任何程式經驗。
請參閱課程需求
課程需求
1. 有一台電腦
2. 對電腦運作理論有興趣
3. 不排斥撰寫沒有使用者圖像介面(GUI)的程式
4. 有一顆不畏懼艱難的心
課程目標
這堂課的課程目標為學習C語言語法,有能力單用C語言實作有用且有效率的程式。
並且為演算法與電腦晶片控制鋪路。
課程特點
1. 學習C語言語法
2. 使用C語言寫出執行程式
3. 了解記憶體位址與指標關係
4. 了解程式運作基本原理
第一章 (總長1.6小時)
-
play_arrow
01. C語言介紹
13:33 -
play_arrow
02. [Windows] 安裝與使用 VSCode 與 MinGW 撰寫開發 C 語言
13:54 -
lock
03. [補充] QT與LGPL與商業授權
09:53 -
play_arrow
04. [Mac] 安裝QT
10:13 -
play_arrow
05. [Windows] 安裝QT
11:29 -
play_arrow
06. QT安裝一直失敗請看, QT Creator離線安裝下載檔
07:07 -
play_arrow
07. [Windows] DevC++ 安裝與檔案介紹
14:04 -
lock
08. [Windows] 安裝CodeBlocks
16:54
第二章 (總長0.3小時)
-
play_arrow
01. 用QTCreator建置C語言專案與視窗設定介紹
08:34 -
play_arrow
02. [Windows] QTCreator 視窗設定額外注意事項與課程資源使用
05:37 -
lock
03. [Windows] QTCreator改變編碼為Big 5去顯示中文輸出
03:33 -
lock
04. [Mac] QTCreator 編譯錯誤,stdio h找不到(常發生於MacOS 系統升級後)
02:47
第三章 (總長8.2小時)
-
play_arrow
01. C語言課程教學方向
04:15 -
play_arrow
02. 程式進入點與為什麼程式可以運作
17:52 -
play_arrow
03. include與Header檔,看似簡單的stdio_h
14:29 -
play_arrow
04. 宣告char與string,利用printf印出變數
12:23 -
lock
05. 變數(一), 整數Integer
22:03 -
lock
06. 變數記憶體空間與sizeof, 初探位元與位元組
20:06 -
lock
07. 整數加減法與一元運算子和執行順序
24:11 -
lock
08. 整數乘法與浮點數Float的問題
13:44 -
lock
09. 基本型態(二) - 浮點數Float與雙精度浮點數Double
13:15 -
lock
10. 除法與餘數
10:01 -
lock
11. 基本型態的強制轉型
11:51 -
play_arrow
12. 2進位與16進位,位元與位元組所代表的意思(bit, byte)
28:40 -
lock
13. 條件判斷if-else與布林值(Boolean)
08:25 -
lock
14. 關係運算子與else if
10:13 -
lock
15. 邏輯運算子(&&, ||, !)
18:54 -
lock
16. 整理條件判斷式
11:31 -
lock
17. Switch-case and #define
13:52 -
lock
18. While, do_while 迴圈與 return
20:23 -
lock
19. array 陣列1
16:26 -
lock
20. array 陣列2 - 雙重矩陣
22:01 -
lock
21. for-loop 迴圈
08:05 -
lock
22. break、continue迴圈,利用亂數random抽獎遊戲來加深印象
25:30 -
lock
23. 函數、函式庫與API概念簡介
13:24 -
lock
24. 簡單函數宣告
10:33 -
lock
25. 函數回傳值
13:24 -
lock
26. 全域變數與變數的區域性
11:57 -
lock
27. 常量變數(const)
05:14 -
lock
28. 函數傳入值(parameters, arguments)
10:23 -
lock
29. Struct 結構基本用法與字串複製(strncpy)
15:12 -
lock
30. 自製Strncpy函數
25:32 -
lock
31. 使用Struct當作函數傳入值與回傳值
13:21 -
lock
32. 利用Struct與迴圈建立學生列表(包含Struct記憶體使用問題)
09:33 -
lock
33. 建立自製Header檔與C檔做專案管理
16:07
第四章 (總長6.5小時)
-
play_arrow
01. 指標與檔案章節介紹
06:42 -
lock
02. 檔案新增與開啟(fopen)
20:27 -
lock
03. 檔案文字寫入與讀取(fprinf, fscanf, fclose)
14:07 -
lock
04. 複製檔案與移動檔案指標(fread, fwrite, fseek, ftell)
27:13 -
lock
05. 複製檔案效率與硬碟寫關係(fgetc, fputc, fflush, gettimeofday)
18:51 -
lock
06. 指標與記憶體位置(一)
20:24 -
lock
07. 指標與記憶體位置(二)
14:37 -
lock
08. 動態配置記憶體與釋放(malloc, free)
18:37 -
lock
09. 指標位移量與指標型態關係
11:00 -
lock
10. BMP點陣圖檔案格式介紹
19:09 -
lock
11. 寫程式讀取BMP點陣圖資訊
27:33 -
lock
12. 自製簡易BMP圖檔產生程式
09:47 -
lock
13. [Windows] 解決MinGW造成的圖片不能開與dll檔不見問題
06:06 -
lock
14. [Windows] 解決圖片顏色錯誤問題與file open造成的分行錯誤
08:31 -
lock
15. typedef 與 Header整理
09:26 -
lock
16. 建立BMP圖檔產生函數
09:00 -
lock
17. 執行檔輸入值與雙重指標(argc, argv)
18:17 -
lock
18. 字串轉換為數字與輸入安全性(常見考試題目)
29:39 -
lock
19. 字串安全性與顏色轉換,Bit運算的實例
33:02 -
lock
20. 初探函數指標(function pointer)
06:45 -
lock
21. typedef與函數陣列
09:23 -
lock
22. 重構函數,取得結果的另一種方法
17:13 -
lock
23. 利用陣列的方式產生struct變數
10:33 -
lock
24. 利用Enum表示目的,為建立函式庫重構程式
20:57
第五章 (總長2.5小時)
-
lock
01. 簡易字幕檔產生器範例介紹
08:18 -
lock
02. [QT] 利用QString與QTextEdit獲取字串
12:46 -
lock
03. [QT] QT檔案功能與C語言之間的關係
09:36 -
lock
04. [QT] 在QT或C++專案中加入純C檔案
12:25 -
lock
05. [QT] 使用QFileDialog選取路徑
09:44 -
lock
06. 程式碼移植與檔案讀取
17:43 -
lock
07. 初探鏈結串列概念(linked list)
20:24 -
lock
08. 完成移植
06:55 -
lock
09. 詳解讀取檔案
11:15 -
lock
10. Wav聲音原理解說
09:40 -
lock
11. [可略過] Wav聲音切分原理與可調參數
12:43 -
lock
12. Google cloud platform(GCP)註冊Speech-to-text與憑證下載
12:55 -
lock
13. [可選擇] Google speech to text 範例講解(以ruby為例)
06:26
課程講師
縱裕
iOS 工程師 / Ruby On Rails 網站工程師
現職為iOS 工程師,但同時也在鑽研網站技術並且建立多個網站。
曾協助多個新創公司,範圍包含網站前端到桌面應用程式倉存管理與電子機關互動。
從網站架設,手機APP到系統底層都有豐富的經驗。
擅長不同系統架構的整合與創新想法的實現。
經歷:
進度條 技術顧問
Digilog.tw 網站與倉庫後台程式架構設計與建置
Zooe 線上教學平台 網站架構設計與建置
HelloStudy 楓禾留遊學網 設計與建置
Funlock 放樂工作室真實密室逃脫遊戲 - 魔鏡迷城 電子機關設計與製作
iOS App - Rock Click 節拍器
Nexcom ARM韌體與軟體工程師
Insyde BIOS工程師