我想要做的(我本来以为)是一个简单的宏扩展下预处理器宏扩展
#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