zhangyh0622 发表于 2021-10-23 16:26:49

这个解释我不太懂

#defin那么请问代码中 F(3+2) 的值等于多少?
F(3+2) == 2*3+2 == 8,
注意,宏定义是在程序编译时先进行的预处理,做法是直接将标识符替换为常量,并不会进行相关运算。因此,直接将 F(3+2) 替换为 2*3+2。e F(n) 2*n

村里小黑 发表于 2021-10-23 16:33:14

代码呢?

大马强 发表于 2021-10-23 16:39:21

有点看不懂你的意思
你是说这个意思吗? #defin F(x) x*2然后代 F(2+1) = 2 + 1 * 2而不是 3*2吗?
解决方法是 #defin F(x) (x)*2 小甲鱼讲过宏定义参数代值很死板

大马强 发表于 2021-10-23 16:39:54

只能加个()避免这个bug

zhangyh0622 发表于 2021-10-23 17:52:27

大马强 发表于 2021-10-23 16:39
有点看不懂你的意思
你是说这个意思吗?然后代 F(2+1) = 2 + 1 * 2而不是 3*2吗?
解决方法是小甲鱼讲 ...

是的 老表

tianlai7266 发表于 2021-10-23 20:29:36

{:10_254:}

AdiosSpike 发表于 2021-10-23 21:12:00

感谢

100gram 发表于 2021-10-23 22:10:03

{:10_256:}
页: [1]
查看完整版本: 这个解释我不太懂