C语言 预处理命令 30

#defineCIRCLE(R,L,S,V)L=2*PI*R,S=PI*R*R,V=4.0/3.0*PI*R*R*R谁能给我解释下上面这行代码是什么意思?... #define CIRCLE(R,L,S,V)L=2*PI*R,S=PI*R*R,V=4.0/3.0*PI*R*R*R

谁能给我解释下 上面这行代码是什么意思?
展开
 我来答
88447821
2012-10-06 · TA获得超过1504个赞
知道小有建树答主
回答量:729
采纳率:100%
帮助的人:302万
展开全部
你好。
#define CIRCLE(R,L,S,V)L=2*PI*R,S=PI*R*R,V=4.0/3.0*PI*R*R*R
定义了CIRCLE宏函数,它的作用是通过半径计算圆的周长,面积,和体积。
其中R是半径, L是周长, S是面积, V是体积。

用法:
float r = 10;
float l,s,v;
CIRCLE(r, l, s, v);//在编译时,这句会被替换成
l = 2 * PI * r, s = PI * r * r, v = 4.0 / 3.0 *PI * r * r * r;
上面是一个逗号表达式,最后值是v, 但是因为逗号表达式每部分都需要计算,成功实现了计算。
更多追问追答
追问
总有那么点感觉是似懂非懂的 但是到底是哪里不懂 又说不出...
追答
。。。。。额。。。。这个。。。。
eiilpux17
2012-10-06 · TA获得超过802个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:404万
展开全部
CIRCLE(R,L,S,V)和
L=2*PI*R,S=PI*R*R,V=4.0/3.0*PI*R*R*R
是等价的,如果代码中出现了前面的东西,那么可以看做是后面的东西,书写起来方便。
你说的这个就是,当执行到CIRCLE(R,L,S,V),则相当于执行L=2*PI*R,S=PI*R*R,V=4.0/3.0*PI*R*R*R,代码中用前面的代替了后面的内容
更多追问追答
追问
我知道宏定义带参数一般格式为
#define宏名(参数表)字符串
那#define CIRCLE(R,L,S,V)L=2*PI*R,S=PI*R*R,V=4.0/3.0*PI*R*R*R
CIRCLE=宏名
(R,L,S,V)参数表
L=2*PI*R,S=PI*R*R,V=4.0/3.0*PI*R*R*R=字符串?
是不是这样的?
追答
是这样的……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shark_1980
2012-10-06 · TA获得超过4925个赞
知道小有建树答主
回答量:1096
采纳率:100%
帮助的人:410万
展开全部
定义了一个宏CIRCLE(R,L,S,V),该宏同时计算了给定半径的
圆的周长L=2πR
圆的面积S=πR²
球的体积V=4/3·πR³

如果有一条语句 x=CIRCLE(R,L,S,V),那么最终x=L。可以说一条宏做了三件半事,看起来很牛,但是极不赞成这样做。
追问
如果是x=CIRCLE(R,L,S,V) 不是就只能输出一个值吗
追答
呵呵,还是同时计算了L,S,V三个值,并返回一个计算结果给x(L,S,V都计算了,只是把L的值返回给了x)。
不信你试试:
#include
#define PI 3.14159

#define CIRCLE(R,L,S,V) L=2*PI*R,S=PI*R*R,V=4.0/3.0*PI*R*R*R

void main()
{
double r,l,s,v,x;
r=10;
x=CIRCLE(r,l,s,v);
std::cout<<"R="<<r<<"\nL="<<l<<"\nS="<<s<<"\nV="<<v<<"\nX="<<x<<std::endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
怡丫11
2012-10-06
知道答主
回答量:60
采纳率:0%
帮助的人:21.8万
展开全部
把CIRCLE(R,L,S,V)L定义为2*PI*R,把S定义为PI*R*R,把V定义为
4.0/3.0*PI*R*R*R,在代码中出现的CIRCLE(R,L,S,V)L,S.V都有其固定的含义了,即定义的含义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
真心闯天涯1
2012-10-06 · 贡献了超过129个回答
知道答主
回答量:129
采纳率:0%
帮助的人:24万
展开全部
无解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式