#define DEBUG_BREAK(a)\
if ((a)) \
{\
__asm int 3;\
}
我已经按照上面定义了一个宏,并尝试使用它
#include "test_define.h"
int main()
{
DEBUG_BREAK(1 == 1);
return 0;
}
但该示例无法编译。编译器会抱怨括号没有关闭。如果我添加另一个}
在源文件的末尾,它会编译。
这个宏有什么问题吗?
宏观
#define DEBUG_BREAK(a)\
if ((a)) \
__asm int 3;
工作正常但是
#define DEBUG_BREAK(a)\
if ((a)) \
{\
__asm int 3;\
}
没有!我想任何人都可以猜到为什么!新的线路操作员是制造问题的家伙!
It takes
__asm int 3;\
}
as
__asm int 3; }
where ;
注释掉它后面的内容(在汇编中)。所以我们会错过一个}
then.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)