| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 727 人关注过本帖
标题:C语言初学菜鸟请教
只看楼主 加入收藏
wusoso
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-5-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
C语言初学菜鸟请教
我刚学C语言,现看到预处理命令,有个简单的程序执行出来的结果和我想的不一样
#include <stdio.h>
#define ADD(x) x+x
void main()
{ int m=1,n=2,k=3,sum;
  sum = ADD(m+n)*k;
  printf("%d",sum);
}

ADD(m+n) 应该是 ADD(m+n+m+n) 这样求出的值应该是6,然后再乘以k=3,结果应该是18,这个是我的理解
但是程序求出来的值是10,请哪位大虾帮解释一下,小弟实在大脑愚钝,想了半天不明白怎么得出10这个结果。
谢谢了。
搜索更多相关主题的帖子: include C语言 
2013-05-25 23:55
hsjjgm
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:106
专家分:189
注 册:2013-4-27
收藏
得分:15 
#define ADD(x) (x+x)  就对了
不然ADD(m+n)就相当于 m+n+m+n*k,所以等于10
2013-05-26 00:18
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:5 
宏作为函数扩展是很容易出错的,楼主最好不要轻易使用。为了节省开销,可以考虑inline function

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-05-26 08:29
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
学习!!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-26 09:31
wusoso
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-5-25
收藏
得分:0 
谢谢了,原来是这样!
2013-05-26 10:23
Is_chuan
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:25
专家分:1
注 册:2013-5-25
收藏
得分:0 
刚接触c的菜鸟,表示还没那么快学到预处理!
2013-05-26 10:23
boguke
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-5-26
收藏
得分:0 
2013-05-26 20:04
很无知
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-5-30
收藏
得分:0 
原来如此!!
2013-05-30 20:37
Holmes_
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2013-5-28
收藏
得分:0 
学习了
2013-05-31 22:02
快速回复:C语言初学菜鸟请教
数据加载中...
 
   



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

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