| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 368 人关注过本帖
标题:我遇到的# define宏定义的问题
只看楼主 加入收藏
gaolongtou
Rank: 2
等 级:论坛游民
帖 子:79
专家分:42
注 册:2012-9-25
结帖率:88.89%
收藏
 问题点数:0 回复次数:2 
我遇到的# define宏定义的问题
程序代码:
# include <stdio.h>
# define PT 3.5
//# define S(x) PT*x*x //3.5*3*3
float S(int x)
{
    return (PT*x*x);
}

void main()
{
    int a = 1;
    int b = 2;
    printf("123456789\n");
    printf("%4.1f\n", S(a+b));
}


大神帮看看啊
为什么我的用#define S(x) PT*x*x 这个宏定义是运行出的结果是7.5, 而用宏定义下边的函数运行出的结果是31.5啊?
求解释!
先谢谢啦!!!
2013-03-02 16:25
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:0 
S(a+b) 展开就是 PT*a+b*a+b
3.5*1+2*1+2 当然等于7.5,你小学没毕业
2013-03-02 16:35
gaolongtou
Rank: 2
等 级:论坛游民
帖 子:79
专家分:42
注 册:2012-9-25
收藏
得分:0 
回复 2楼 rjsp
呵呵,原来是这样理解的啊!
我的理解成了 S(a+b)等价于 S(3)
算出来是31.5。
谢谢啦!!!
2013-03-02 16:47
快速回复:我遇到的# define宏定义的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017166 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved