gpt4 book ai didi

c - 宏在 C 中如何工作?

转载 作者:行者123 更新时间:2023-11-30 18:29:12 24 4
gpt4 key购买 nike

#include<stdio.h>
#define mul(p,q) p*q
int main(){
int a=5;
printf("%d",mul(a+3,a-2));
return 0;
}

我预计会打印 24,但结果是 18。为什么会发生这种情况?

最佳答案

基本上,编译前查找并替换。你的代码变成

int main(){
int a=5;
printf("%d",a+3*a-2);
return 0;
}

而不是#define mul(p,q) p*q,你应该做#define mul(p,q) ((p)*(q)) 。然后你的代码将如下所示,你将得到预期的答案。

int main(){
int a=5;
printf("%d",((a+3)*(a-2)));
return 0;
}

关于c - 宏在 C 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40072217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com