大段的巨集定義可能會降低**的可讀性,但是適當使用巨集定義可以節省**量,讓**更加簡潔。比如對於定義有多種屬性的能力模組而言,這樣使用巨集定義會讓**更加清晰和簡潔:
//宣告一種屬性以及獲取該屬性值
#define attr_decl(attr) \
protected: \
unsigned int _##attr = 0;
public: \
unsigned int attr() const
//重置一種屬性
#define attr_reset(attr) _##attr = 0;
//設定一種屬性
#define attr_set(attr, val) _##attr = (val);
//讓一種屬性的值增加
#define attr_add(attr, val) _##attr += (val);
可以在該能力模組類中以如下方式宣告:
attr_decl(dam); //宣告攻擊
attr_decl(def); //宣告防禦
attr_decl(hp); //宣告生命值
重新計算屬性:(先清零,然後計算)
attr_reset(dam);//重置攻擊屬性
attr_reset(def);//重置防禦屬性
attr_reset(hp);//重置生命值屬性
attr_add(dam, ×××);//計算攻擊屬性
attr_add(def, ×××);//計算防禦屬性
attr_add(hp, ×××);//計算生命值屬性
巧用iOS巨集定義
attribute used,section.把某個變數的放入特殊的section中 用法 char kchinapyg attribute used,section data,chinapyg chinapyg.com char kdllhook attribute used,section da...
巧用巨集定義進行除錯
巧用巨集定義進行除錯 在進行程式設計時,有時我們往往不希望借住於除錯工具 如 gdb,vc 而以輸出除錯資訊的方式進行除錯時,我們就可以借住於強大的巨集定義來進行除錯。一 在gcc下的定義方法,因為gcc支援變引數的巨集定義,所以我們可以用如下定義 ifdef debug define dbg fo...
c 小技巧,巨集定義工廠函式
這幾天在寫魚類抽象的時候,發現原來使用父類指標建立,替換,轉化子類物件的方法原來叫工廠模式,以前常常用這種方法,終於發現原來是有學名的。這裡介紹一種使用巨集定義函式來建立工廠函式的方法,借鑑了cocos的巨集。1 首先,我們要避免建立乙個不能例項化的抽象父類,除去用rtti,使用類id,我們還可以用...