iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 1
0
自我挑戰組

30 Days 如何把 C 語言偽裝成高階語言 OWO /系列 第 1

Days 1: 簡介、廢話、目錄 (十分建議先看 Days 2 的大綱)

▌以下鐵人賽的報名簡介:

C 是一個偏向底層的語言,有中階語言之稱...
一起來把它偽裝成高階語言吧~~! >w< ~/ !
應該會牽涉 垃圾回收、例外處理、可變參數、任意類型...等等。
需要對指標、地址、巨集、前置處理器進行比較深入的瞭解~.。

. . . . . .
原本的題目是 [ 30 Days 用C語言實現垃圾回收器(Garbage collector) ],
不過寫著寫著草稿就覺得,
好像只做垃圾回收,
寫不了這麼多字數、篇章,堅持不了30天。

所以就換了一個比較大的題目。OWO /


▌自我介紹一下。

本人大專生,不要對水平抱有任何期待 >WO。
自學為主,所以有不少都是個人見解
可能用了很多奇怪並錯誤的做法,
請大家多多指教~

第一次參加it邦鐵人賽,用30天來迫一下自己,挑戰一下。
頭腦一熱就報名了,希望能堅持到最後。

真的不行就把一篇拆成兩三篇水一下。


▌回到正題

上面提到 C 是一個偏向底層的語言,有很多特性都是 C 沒有的。
對於 Java, C# 這些比較高階的語言,本身內建了垃圾回收器(GC),

可是 C 沒有

Python 有任意類型var,Java , C#, C++ ... 有泛型例外處理物件導向繼承...,

C 沒有

QAQ


雖然説作為一個偏向底層的語言,沒有這些是對的
畢竟要開發大型系統,就不會用 C 。(或者很少,總有例外 linux

▌所以呢......

有沒有方法在一定範圍內,加入一些高階語言的特性呢...?讓我們寫得方便一些。
開始把 C 偽裝成高階語言吧~ >w< / ~
~~


▌以下目錄:

**Days 2: 大綱(十分建議先看這個)**

Days 3: 重溫指標:記憶體地址 、 儲存空間
Days 4: 重溫指標:靜態變數的地址、函數回傳地址
Days 5: 重溫指標:不使用回傳地址方式的函數
Days 6: 重溫指標:不使用回傳地址方式的函數(續.)
Days 7: 重溫指標:數據、數據類型的本質
Days 8: 重溫指標:雜項:指標宣告、運算符
Days 9: 動態記憶體分配:malloc()、calloc()、realloc()、free(),內存洩露
Days 10: atexit()、函數程序結束時調用函數
Days 11: 什麼是垃圾回收器?
Days 12: 垃圾回收器系列:概念、粗略實現
Days 13: 垃圾回收器系列:完善標記地址的函數
Days 14: 垃圾回收器系列:完善 用於釋放所有被標記地址的函數
Days 15: 垃圾回收器系列:初步測試
Days 15: 垃圾回收器系列:初步測試 ( 代碼 )
Days 16: 垃圾回收器系列:解決全域變數的問題、靜態變數
Days 17: 垃圾回收器系列:更好的封裝性
Days 18: 垃圾回收器系列:更多的功能
Days 19: 垃圾回收器系列:鎖碎事項:細節優化
Days 20: 垃圾回收器系列:記憶體碎片化、內存池
Day 21:重溫前置處理器、巨集( #, ## )、預先定義的巨集
Day 22:重溫 可變參數函數、可變參數宏 __VA_ARGS__
Day 23: goto、標記、爭議及反面例子
Day 24: 例外處理系列:極粗略實現、使用例子
Day 25: 例外處理系列:研究進行中:優化:一個 catch 可對應多個 try
Day 26: 例外處理系列:研究進行中 :優化:不再需要【回傳值必須作錯誤碼處理的約定】
Day 27: 例外處理系列:研究進行中 :大量優化、黑魔法
Day 28: 例外處理系列:研究結束中 :finally() 、進行封裝、巨集優化
Day 29: 例外處理系列:巨集函數具體的使用方式
Day 30: 總結、廢話、完結撒花



下一篇
Days 3: 重溫指標:記憶體地址 、 儲存空間
系列文
30 Days 如何把 C 語言偽裝成高階語言 OWO /31

尚未有邦友留言

立即登入留言