我想要做的(我本來以爲)是一個簡單的宏擴展下預處理器宏擴展
#define CLEAR_DIGIT(a,b) iconMap[a] &= ~(b)
#define R1 4, 16
CLEAR_DIGIT(R1);
現在我期望擴大到CLEAR_DIGIT(4,16),它擴展到iconMap [4] & =〜16 但是,它不...如果我做CLEAR_DIGIT功能:
void ClearDigit(unsigned char a, unsigned char b)
{
iconMap[a] &= ~b;
}
#define R1 4, 16
ClearDigit(R1);
然後正常工作,所以R1被擴展出兩個參數是不一個問題......在宏功能擴展之前,有沒有辦法強制它擴展R1?
相關:http://stackoverflow.com/questions/3776750/macros-evaluation-in-c-programming-language – MByD 2011-12-21 10:09:28