刚接触宏,请问这个的输出结果为什么是82,对过程完全不理解,望各位指点
#include<stdio.h>
#define A b+c
#define Z y+x
int main(void){
int y = 2,x = 6,b = 0x10,c = 0x20;
printf("%x",Z*A);
return 0;
}
刚接触宏,请问这个的输出结果为什么是82,对过程完全不理解,望各位指点
#include<stdio.h>
#define A b+c
#define Z y+x
int main(void){
int y = 2,x = 6,b = 0x10,c = 0x20;
printf("%x",Z*A);
return 0;
}
printf("%x",Z*A) 在编译时宏替换为
printf("%x",y+x*b+c),0x2+0x6 * 0x10+0x20 = 0x82