这是我所拥有的,我想知道它是如何工作的以及它实际上做了什么。
#define NUM 5
#define FTIMES(x)(x*5)
int main(void) {
int j = 1;
printf("%d %d\n", FTIMES(j+5), FTIMES((j+5)));
}
它产生两个整数:26 和 30。
它是如何做到的?
最佳答案
发生这种情况的原因是您的宏将打印扩展为:
printf("%d %d\n", j+5*5, (j+5)*5);
意义:
1+5*5 and (1+5)*5