C 巨集的用途

2022-07-30 15:30:21 字數 341 閱讀 2896

本文總結一下《遊戲程式設計精粹3》1.3節的內容和自己在專案中遇到過或使用過的巨集技巧。

可以把巨集的用途粗略地分為三類:

一是測試,比如assert及其變種、編譯時斷言、防止無限迴圈、__file__等,這類巨集在release版本中通常會被替換為空;

二是功能,一些功能通過巨集來實現會更方便或者效能更好(把執行時的工作搬到編譯期來了),比如《遊戲程式設計精粹3》1.3.3的例子,在編譯期實現了二進位制轉十六進製制;

三是簡便,包括減少**重複(也就減少了修改**的時間)、提高可讀性等,比如「implementing a state machine language」中的例子、簡化類介面(將子類中重複的函式頭用巨集代替)等。

C 的巨集和 C 的巨集

總結一下c和c 的巨集。大家經常使用的其實都是c中的巨集,但是c 都延續了下來,先回顧一下。define 定義巨集 undef 取消巨集 include 包含標頭檔案 ifdef 如果巨集已經定義,則返回真 ifndef 如果巨集沒有定義,則返回真 if 如果條件為真,則執行下面的 else 與 i...

c 中 和 的用途

雙冒號 用法 1 作用域符號 的前面一般是類名稱,後面一般是該類的成員名稱,c 為例避免不同的類有名稱相同的成員而採用作用域的方式進行區分 如 a,b表示兩個類,在a,b中都有成員member。那麼 a member就表示類a中的成員member b member就表示類b中的成員member 2 ...

C 反射的用途

1.使用 assembly 定義和引導程式集,載入在程式集清單中列出的模組 以及從此程式集中查詢型別並建立該型別的例項。2.使用 module 了解如下的類似資訊 包含模組的程式集以及模組中的類等。您還可以獲取在模組上定義的所有全域性方法或其他特定的非全域性方法。3.使用 constructorin...