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
谁能给我解释下 上面这行代码是什么意思? 展开
谁能给我解释下 上面这行代码是什么意思? 展开
6个回答
展开全部
你好。
#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, 但是因为逗号表达式每部分都需要计算,成功实现了计算。
#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, 但是因为逗号表达式每部分都需要计算,成功实现了计算。
更多追问追答
追问
总有那么点感觉是似懂非懂的 但是到底是哪里不懂 又说不出...
追答
。。。。。额。。。。这个。。。。
展开全部
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,代码中用前面的代替了后面的内容
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=字符串?
是不是这样的?
追答
是这样的……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义了一个宏CIRCLE(R,L,S,V),该宏同时计算了给定半径的
圆的周长L=2πR
圆的面积S=πR²
球的体积V=4/3·πR³
如果有一条语句 x=CIRCLE(R,L,S,V),那么最终x=L。可以说一条宏做了三件半事,看起来很牛,但是极不赞成这样做。
圆的周长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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把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都有其固定的含义了,即定义的含义。
4.0/3.0*PI*R*R*R,在代码中出现的CIRCLE(R,L,S,V)L,S.V都有其固定的含义了,即定义的含义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
无解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询