请问一个c栈程序的有关问题
请教一个c栈程序的问题
#define MD(a)a<<2
int main(){
int i;
Stack* mystack;
push(mystack,MD(1));
}
我想问#define MD(a)a<<2中MD是什么意思。当输入1的时候为什么入栈的是4?
希望大神给指点迷惑/抱拳
------解决思路----------------------
#define MD(a)a<<2这是一个宏。
首先我们按照宏替换的原则来看。。结果如下:
MD(1)----->1<<2
再来看1<<2 。<<是按位运算符,百度即可。
1的二进制是1,进行按位运算就是1向左移动俩位,就是100(二进制) ;然而100刚好是4
#define MD(a)a<<2
int main(){
int i;
Stack* mystack;
push(mystack,MD(1));
}
我想问#define MD(a)a<<2中MD是什么意思。当输入1的时候为什么入栈的是4?
希望大神给指点迷惑/抱拳
------解决思路----------------------
#define MD(a)a<<2这是一个宏。
首先我们按照宏替换的原则来看。。结果如下:
MD(1)----->1<<2
再来看1<<2 。<<是按位运算符,百度即可。
1的二进制是1,进行按位运算就是1向左移动俩位,就是100(二进制) ;然而100刚好是4