我只是好奇为什么输出是 4 而不是 6 。你们中有人可以帮忙解释一下他们的过程吗?
#include <stdio.h>
#define AMT1 a+a+a
#define AMT2 AMT1 - AMT1
main()
{
int a=1;
printf (“Amount is %d\n”,AMT2);
}
谢谢
最佳答案
AMT2 = AMT1 - AMT1
AMT2 = a+a+a - a+a+a
AMT2 = 1+1+1 - 1+1+1
AMT2 = 3 - 1 + 1 + 1
AMT2 = 2 + 1 + 1
AMT2 = 3 + 1
AMT2 = 4
宏的第一条规则是:所有内容都需要用括号括起来。你想要:
#define AMT2 (AMT1) - (AMT1)
关于输出结果令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64798687/