我正在为我的嵌入式系统类编写一个设备处理程序,并且我正在尝试使用宏来检查第 i 位是否已设置。我的宏似乎无法正常工作,但内联函数可以。这是为什么?
#define TEST0 i&0x01
#define CLEAR0 i &= 0x01
inline short test0(short i) {
return i&0x01;
}
int main() {
short flag = 1;
//this doesnt work
if (TEST0(flag) == 0x01) {
CLEAR0(flag);
}
//but this does
if (test0(flag) == 0x01) {
CLEAR0(flag);
}
return 0;
}