小技巧 6 巧用巨集定義

2021-10-07 02:40:26 字數 792 閱讀 7822

大段的巨集定義可能會降低**的可讀性,但是適當使用巨集定義可以節省**量,讓**更加簡潔。比如對於定義有多種屬性的能力模組而言,這樣使用巨集定義會讓**更加清晰和簡潔:

//宣告一種屬性以及獲取該屬性值

#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,我們還可以用...