搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ [求助]带#define的求最大值,为什么这样错
标题:
[求助]带#define的求最大值,为什么这样错
只看楼主
ljfabcd
等 级:
新手上路
帖 子:5
专家分:0
注 册:2007-4-2
楼主
问题点数:0 回复次数:6
[求助]带#define的求最大值,为什么这样错
#include<iostream.h>
#define max(a,b) a>b?a:b
void main()
{
cin>>a>>b;
cout<<max(a,b)<<endl;
}
我是菜鸟,不知道上面那个为什么不可以,应给怎么用呢?
搜索更多相关主题的帖子:
最大值
define
2007-04-13 22:03
aipb2007
来 自:CQU
等 级:
贵宾
威 望:
40
帖 子:2879
专家分:7
注 册:2007-3-18
第
2
楼
得分:0
这样只是把程序中max(a,b)出现的地方用a>b?a:b代替,不能实现函数功能!
Fight to win or die...
2007-04-13 22:07
I喜欢c
等 级:
贵宾
威 望:
64
帖 子:1749
专家分:0
注 册:2007-3-2
第
3
楼
得分:0
a,b没定义呀!
能通过编译?
我是指针,却丢失了目标地址! 我是循环,却缺少了结束条件! 我是函数,却没有人来调用!
2007-04-13 22:29
PcrazyC
等 级:
贵宾
威 望:
29
帖 子:5652
专家分:0
注 册:2006-10-20
第
4
楼
得分:0
#include<iostream.h>
#define max(a,b) (a>b?a:b) .//加一个括号,不然替换以后,在那个式子中"<<"运算符的优先级比较高,所以会报错的
void main()
{
int a,b;
cin>>a>>b;
cout<<max(a,b)<<endl;
}
雁无留踪之意,水无取影之心
2007-04-14 09:21
I喜欢c
等 级:
贵宾
威 望:
64
帖 子:1749
专家分:0
注 册:2007-3-2
第
5
楼
得分:0
#include<iostream.h>
#define max(a,b) ((a)>(b)?(a):(b))
void main()
{
int a,b;
cin>>a>>b;
cout<<max(a,b)<<endl;
}
//这样岂不更稳当?
我是指针,却丢失了目标地址! 我是循环,却缺少了结束条件! 我是函数,却没有人来调用!
2007-04-14 12:22
fromcsu
等 级:
新手上路
帖 子:17
专家分:0
注 册:2007-4-14
第
6
楼
得分:0
#define max(a,b) ((a)>(b)?(a):(b))
这样是最保险的了,首先这种宏定义在程序中就是简单的替换,所以对于表达式要括起来,避免因为和其他的表达式在一起的时候出现逻辑问题,再者a,b也可能是表达式,所以要分别括起来更稳妥些
2007-04-15 00:11
ljfabcd
等 级:
新手上路
帖 子:5
专家分:0
注 册:2007-4-2
第
7
楼
得分:0
谢谢各位指导,
2007-04-15 18:31
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-131724-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.084152 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved