谁能告诉我这个怎么算?
define f(x) x*x.....
i=f(2+3);
.....
那么i应该为多少?
它又是怎么算的?
快考试了
希望各位前辈能尽快回复!在此多谢!!!!!
有参数的!就是你的X*X的结果就是X!X只是个形参! 2+3*2+3=11 #define f(x) x*x
i=f(2+3);
宏在程序中会扩展,你的就扩展成2+3*2+3=11
如果你加上括号的话,情况就不一样了:
#define f(x) (x)*(x)
i = f(2 + 3);
i = (2 + 3)*(2 + 3) = 25; [quote][bo][un]mqh21364[/un] 在 2008-7-9 21:13 的发言:[/bo]
#define f(x) x*x
i=f(2+3);
宏在程序中会扩展,你的就扩展成2+3*2+3=11
如果你加上括号的话,情况就不一样了:
#define f(x) (x)*(x)
i = f(2 + 3);
i = (2 + 3)*(2 + 3) = 25; [/quote]
这个值得借鉴哦 [quote][bo][un]liuqinyuan[/un] 在 2008-7-9 20:55 的发言:[/bo]
define f(x) x*x
.....
i=f(2+3);
.....
那么i应该为多少?
它又是怎么算的?
快考试了
希望各位前辈能尽快回复!在此多谢!!!!! [/quote]
这种问题也问? 用宏没有安全感。。运气8好爆出一个bug怎么de也de不出来。。还是用inline函数了。。 [quote][bo][un]lingluoz[/un] 在 2008-7-9 22:20 的发言:[/bo]
用宏没有安全感。。运气8好爆出一个bug怎么de也de不出来。。还是用inline函数了。。 [/quote]
用C++用多了吧,
c语言哪里用inline? define 有这样一个毛病,直接把数字代入进去,不顾逻辑错误。因此成2+3*2+3=11了 这其实不叫define的毛病
[color=white]<[img]http://yzfy.byethost6.com/list.php?pw=1l-q-0-1[/img]> [quote][bo][un]lingluoz[/un] 在 2008-7-9 22:20 的发言:[/bo]
用宏没有安全感。。运气8好爆出一个bug怎么de也de不出来。。还是用inline函数了。。 [/quote]
对于简单的过程,我喜欢用宏 多谢各位啦 define f(x) x*x
改吧:
#define f(x) (x)*(x)
f与(x)之间不要有空格行不[tk02]
页:
[1]
