定义一些东西('w' << 8)

define SOMETHING ('w' << 8)

我遇到了这行代码:

#define BWAKUP              ('w' << 8)

它有什么作用?等于:

#define BWAKUP              (167000)

此外,另定义为:

#define CWAKUP                  (1 + BWAKUP)

等同于:

#define CWAKUP                  (356000)

对吗?

这一行定义了一个扩展为表达式('w' << 8)的宏BWAKUP。假设您的平台使用 ASCII,该表达式的值 119 · 256 = 30464 不等于 167000。同样,CWAKUP 扩展为 (1 + ('w' << 8)),数值为 30465,再次假设您的系统使用 ASCII。

没有更多上下文,我无法告诉您这些宏的含义。

I came accros this line of code:

#define BWAKUP              ('w' << 8)

What does it do?

它将预处理器宏BWAKUP定义为('w' << 8)。这意味着每当 BWAKUP 出现在源代码中时,它将被替换为 ('w' << 8)。例如,printf("%i\n", BWAKUP); 将更改为 printf("%i\n", ('w' << 8));

Its the same as:

#define BWAKUP              (167000)

不,不是。

In addition, another definition as :

#define CWAKUP                  (1 + BWAKUP)

is equivalent to :

#define CWAKUP                  (356000)

Right ?

不,但它等同于 #define CWAKUP (1 + ('w' << 8))