2
我有這樣的宏:語義宏 - 分配之前的宏另一個
#define kPaxZoneW 105.0
我想定義後續宏,總是需要有相同的價值,但對語義的原因,需要有不同的名稱。在之前的定義之後,我能否擺脫這種困境?
#define kPaxZoneAFA kPaxZoneW
這將確保kPaxZoneAFA將始終等於kPaxZoneW的值。
我有這樣的宏:語義宏 - 分配之前的宏另一個
#define kPaxZoneW 105.0
我想定義後續宏,總是需要有相同的價值,但對語義的原因,需要有不同的名稱。在之前的定義之後,我能否擺脫這種困境?
#define kPaxZoneAFA kPaxZoneW
這將確保kPaxZoneAFA將始終等於kPaxZoneW的值。
是;當你這樣做時,任何使用kPaxZoneAFA
將首先被kPaxZoneW
替代,然後由105.0
替換。
是的,你可以。當預處理器遇到第二個聲明時,它將爲其分配原始宏的值。
這是在大多數每個框架的宏到別名時完成的。
完美,謝謝 – 2011-06-09 04:22:59
在一個側面說明,預處理完成1遍,所以順序是非常重要的...如果不是在同一個頭文件中,您需要注意,它們始終包含在同一順序中。 – Bruce 2011-06-09 05:25:56
@Bruce:只要兩個宏在使用之前被定義,宏定義的順序就無關緊要。宏替換是懶惰的。 – 2011-06-09 05:27:32