www.fltk.net > #DEFinE SQR (X) X*X mAin() {int A=10,k=2,m=1; A/=S...

#DEFinE SQR (X) X*X mAin() {int A=10,k=2,m=1; A/=S...

按你的理解应该是 a/=((2+1)*(2+1))/((2+1)*(2+1)) 是吧 其实 宏只是文

答案为1 经过上机得出 a=a/(K+m*k+m/k+m*k+m) //直接替换即可 即是a

#define SQR (X) X*X SQR(k+m)/SQR(k+m) 代入替换 k+

#define SQR(X) X*X 这样定义有问题 改成这样: #define SQR(X

define 出来的“宏函数” 执行的是直接的代码【替换】 SQR(k+m)/SQR(k+m)会被

SQR(k+m)/SQR(k+m); 宏替换展开后为 k+m*k+m/k+m*k+m =2+1

注意,#define做的仅仅是文本替换工作,是预编译阶段完成的,不可将其作为函数使用。 因而,在预编

宏替换,直接代入表达式替换。 解题技巧,遇到define定义的表达式,直接代入式子中替换,问题迎刃

求满意 求赞同 宏做的事 仅仅是展开 所以看一下这句展开式怎样的 a = ++k+1*k+1; 现执

这个问题可以这样来分析: a/= SQR(b+c)/SQR(b+c) 通过宏展开等于是 a=a

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com