Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中,这个宏定义了什么?_C_Macros_C Preprocessor_Bit Shift - Fatal编程技术网

在C语言中,这个宏定义了什么?

在C语言中,这个宏定义了什么?,c,macros,c-preprocessor,bit-shift,C,Macros,C Preprocessor,Bit Shift,其计算结果为左移1位,即该数字也称为2 由于乘法运算符*比位移位运算符绑定得更紧,因此其计算结果为向左移位1位,即数字也称为2 由于乘法运算符*比位移位运算符绑定得更紧,所以向左移位了一位。这将导致两个问题。我无法想象这个宏的基本原理。一,左移一位。这将导致两个问题。我无法想象这个宏的原理。< > >代码> 1 > P>代码> 1 > P> C++操作符优先级,首先计算 */Cuth>运算符,并将其计算为值 1 >代码>,然后将其左移一位,即值 2 ^ 1 < /代码>或仅 2 < /C> >P

其计算结果为左移1位,即该数字也称为2


由于乘法运算符
*
比位移位运算符
绑定得更紧,因此其计算结果为向左移位1位,即数字也称为2


由于乘法运算符
*
比位移位运算符
绑定得更紧,所以向左移位了一位。这将导致两个问题。我无法想象这个宏的基本原理。

一,左移一位。这将导致两个问题。我无法想象这个宏的原理。< > >代码> 1 > P>代码> 1 > P> C++操作符优先级,首先计算<代码> */Cuth>运算符,并将其计算为值<代码> 1 >代码>,然后将其左移一位,即值<代码> 2 ^ 1 < /代码>或仅<代码> 2 < /C> >P>P>每C++操作符优先级,先计算<代码> */Cuth>运算符,计算值为代码< 1 >代码>,然后向左移动一位,即值<代码> 2 ^ 1 < /代码>或仅<代码> 2 < /C> >p>
1
1说:

  00000001
<<       1        
==========
  00000010

也许目的是最终用另一个宏替换1*1中的一个(或两个)术语作为编译时参数,但从未被记录,最终被遗忘。不幸的是,这种事情太频繁了。

这似乎是一种奇怪的迂回说法:

  00000001
<<       1        
==========
  00000010

也许目的是最终用另一个宏替换1*1中的一个(或两个)术语作为编译时参数,但从未被记录,最终被遗忘。不幸的是,这种情况经常发生。

接受,因为您解释了运算符优先级。Thanx已接受,因为您解释了运算符优先级。如果你猜对了,代码下面的是
NUM\u SQ\u 1(1)如果你猜对了,代码下面的是
NUM\u SQ\u 1(1
  00000001
<<       1        
==========
  00000010
#define NUM_SQ_0 2