我来了accros这行代码:
#define BWAKUP ('w' << 8)
它做什么?它与以下相同:
#define BWAKUP (167000)
另外,另一个定义为:
#define CWAKUP (1 + BWAKUP)
相当于:
#define CWAKUP (356000)
对吗?
答案 0 :(得分:1)
此行定义宏BWAKUP
,扩展为表达式('w' << 8)
。假设您的平台使用ASCII,该表达式的值为119·256 = 30464,不等于167000
。同样,CWAKUP
扩展为(1 + ('w' << 8))
,数值为30465,同样假设您的系统使用ASCII。
如果没有更多的上下文,我无法告诉你这些宏的含义是什么。
答案 1 :(得分:1)
我来了accros这行代码:
#define BWAKUP ('w' << 8)
它做了什么?
它将预处理器宏BWAKUP
定义为('w' << 8)
。这意味着,只要BWAKUP
出现在源代码中,它就会被('w' << 8)
替换。例如,printf("%i\n", BWAKUP);
将更改为printf("%i\n", ('w' << 8));
。
与以下相同:
#define BWAKUP (167000)
不,不是。
另外,另一个定义为:
#define CWAKUP (1 + BWAKUP)
相当于:
#define CWAKUP (356000)
对吗?
不,但它等同于#define CWAKUP (1 + ('w' << 8))
。