任何人都可以解释我为什么我得到的输出是64,而不是4?
#include <stdio.h>
#define square(m) m*m
int main()
{
int i;
i=64/square(4);
printf("%d",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
假设您是C预处理器,然后填写define会执行的操作:
int main() {
int i;
i = 64 / 4 * 4;
printf("%d",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,按操作顺序检查答案。
64 / 4 = 16
16 * 4 = 64
Run Code Online (Sandbox Code Playgroud)
瞧