首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

请教这个如何运算

2012-03-15 
请问这个怎么运算?#define EIF_FLAG_BASE0#define EIF_FLAG_SCRAP0x0001#define EIF_SET_SCRAP(x)(x)

请问这个怎么运算?
#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

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

热点排行