我刚开始处理Macros而且我偶然发现了一个我无法理解的练习.有人可以向我解释这里发生了什么吗?如果我编译我可以看到输出是什么,但我自己无法得到它.先感谢您!
#define M(varname, index) ( ( (unsigned char*) & varname )[index] )
int main(void) {
int a = 0x12345678;
printf( "%x %x\n", M(a,0), M(a,3) );
printf( "%x %x\n", M(a,1), M(a,2) );
}
Run Code Online (Sandbox Code Playgroud)