gpt4 book ai didi

C 宏和括号中参数的使用

转载 作者:行者123 更新时间:2023-11-30 16:51:19 25 4
gpt4 key购买 nike

示例

#define Echo(a)  a
#define Echo(a) (a)

我意识到这里可能没有显着的差异,但为什么你想在宏体内的括号内包含 a 呢?它如何改变它?

最佳答案

假设你有

#define mul(x, y)  x * y

如果我说:

,会发生什么?
mul(a + 5, 6); /* a + 5 * 6 */

现在,如果我稍微改变一下宏:

#define mul(x, y)  ((x) * (y))
mul(a + 5, 6); /* ((a + 5) * (6)) */

请记住,不会对参数进行求值或执行任何操作,仅执行文本替换。

编辑

有关将整个宏放在括号中的说明,请参阅 the link发表者 Nate C-K .

关于C 宏和括号中参数的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41825683/

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