c语言问题 #define PI 3.14159f {float b=3.0f; c=a*

c语言问题#definePI3.14159f{floatb=3.0f;c=a*b;printf(“%f”,c);这个结果和下面这个一样吗?#definePI3.14159... c语言问题
#define PI 3.14159f
{float b=3.0f;
c=a*b;
printf(“%f”,c);

这个结果和下面这个一样吗?
#define PI 3.14159
{float b=3.0f;
c=a*b;
printf(“%f”,c);
如果用#define替换数值是不是不加类行也可以?效果都一样吗 有细微得差别吗
展开
 我来答
对床话雨
2014-05-03 · TA获得超过1636个赞
知道小有建树答主
回答量:171
采纳率:100%
帮助的人:156万
展开全部
#define PI 3.14159和

#define PI 3.14159f

的效果是一样的,
#define预定义的代码,实际上只是在预编译时,简单的替换到代码中,然后再编译。至于数字后要不要加类型,这是根据需要定的。
#define PI 3f

.....
float a = 4 * PI; // ==>就相当于 float a=4 * 3f;这里的计算结果直接就是高精度的float
============================
如果定义成
#define PI 3

.....
int a = 4 * PI; // ==>就相当于 int a=4 * 3;这里的计算结果直接就是int的.再转换成float
rafael77_7
2014-05-03
知道答主
回答量:38
采纳率:0%
帮助的人:23.2万
展开全部
宏只是简单的替换,,当a,b精度不一样的时候,会自动按精度最高的算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式