读书人

请教这个如何运算

发布时间: 2012-03-15 11:50:39 作者: rapoo

请问这个怎么运算?
#define EIF_FLAG_BASE'0'
#define EIF_FLAG_SCRAP0x0001


#define EIF_SET_SCRAP(x)(x) = (EIF_FLAG_BASE + (((x) - EIF_FLAG_BASE) | EIF_FLAG_SCRAP));

此时如果我传入 #define EIF_SET_SCRAP(!) 或者 x 传入 Null,结果是什么?
我不会算这个,特别是 ((x) - EIF_FLAG_BASE) 这一步,是先算哪一个,再算哪一步呢?

也不知道我问题是不是说清楚了,谢谢了~~~

[解决办法]
首先呢,楼主这个是汇编版块是吧,,呵呵

正题:((x) - EIF_FLAG_BASE)这个先算(x)的在算外面一个括号的
[解决办法]
#define EIF_SET_SCRAP(x) (x) = (EIF_FLAG_BASE + (((x) - EIF_FLAG_BASE) | EIF_FLAG_SCRAP));
如果传入!,'!'={'0'+(('!'-'0')|1)));
如果是NULL的,把‘!’改NULL

这个运算完还是等于本身传进的参数值

读书人网 >汇编语言

热点推荐