社区
C语言
帖子详情
如何宏定义一个MAX(A,B)求2数最大值,且A,B这2个参数只被计算一次?
stanleyrprose
2005-10-24 11:18:27
#define max(a,b) (((a)>(b))?(a):(b))
其中a,b有可能被计算2次,这样对这样的宏调用max(x++,y),如果x>y则x会++两次,怎样才能只调用一次?
...全文
1412
8
打赏
收藏
如何宏定义一个MAX(A,B)求2数最大值,且A,B这2个参数只被计算一次?
#define max(a,b) (((a)>(b))?(a):(b)) 其中a,b有可能被计算2次,这样对这样的宏调用max(x++,y),如果x>y则x会++两次,怎样才能只调用一次?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaocai0001
2005-10-24
打赏
举报
回复
不知道怎么办~
stanleyrprose
2005-10-24
打赏
举报
回复
这个是道练习题,并不是遇到的实际问题,我就是想怎么才能定义出这么个宏。
drizzlecrj
2005-10-24
打赏
举报
回复
template<typename T>
inline T MAX(const T &x, const T &y)
{
return x > y ? x : y;
}
ec上说了尽量不要使用宏
yzisyz
2005-10-24
打赏
举报
回复
使用模板函数来重写 max 宏。
PMsg
2005-10-24
打赏
举报
回复
自己写一个MAX函数不就得了
stanleyrprose
2005-10-24
打赏
举报
回复
yzx1983(捕风捉影)说的很有道理,不过在表达式中改变变量可是使代码简洁!
还有高手回答这个问题???
寻开心
2005-10-24
打赏
举报
回复
c++当中的模板
yzx1983
2005-10-24
打赏
举报
回复
我始终认为不应抛弃宏,而应抛弃在表达式中改变变量的值这种不良习惯。
【c语言】(
宏定义
)定义
一个
带有三个
参
数
的宏
MAX
,
求
三个
参
数
中的
最大值
题目: 定义
一个
带有三个
参
数
的宏
MAX
,
求
三个
参
数
中的
最大值
思路分析: 主要是要用
一个
函
数
,
求
三个
参
数
中的
最大值
需要用到(x) &amp;gt; (y)? (x) : (y)的多重嵌套 注意每个元素外都要加() 代码实现: #include&amp;lt;stdio.h&amp;gt; #define
Max
(a, b, c) (a) &amp;gt; (b)? ((a) &amp;gt; (c)? (a) : (c))
宏定义
:取
最大值
MAX
&MIN
C语言
宏定义
#define
max
(a,b) a>b?a:b 有什么隐患? 据说要这样写:#define
max
(a,b) ((a)>(b)?(a):(b)),如果不加括号有什么不一样吗? 因为
宏定义
是在预编译阶段把宏的内容拷贝的源代码的相应位置 如果#define
max
(a,b) a>b?a:b这样写的话 那么如下表达式
max
(a,b)+1就展开为a>b?a:b+1 冒号后面就是b+1了,自然和当初愿望不一样,算完
max
再加一违背了 所以要加上括号。 ...
【C语言笔记】【
宏定义
系列】 两个
数
中的
最大值
【C语言笔记】【
宏定义
系列】 两个
数
中的
最大值
宏定义
系列内容。用于记录各式各样有用或者没用的
宏定义
☺。
宏定义
说明 用于通过比较来得到两个
数
中
数
值的
最大值
。例如x=60x=60x=60,y=36y=36y=36,会得到60。 该
宏定义
来自linux kernel 3.10。 实现代码 #define
max
(x, y) ({ \ typeof(x) _
max
1 = (x); \ typeof(y) _
max
2 = (y); \ (void) (&_
max
1 == &_m
【C语言笔记】【
宏定义
系列】 三个
数
中的
最大值
【C语言笔记】【
宏定义
系列】 三个
数
中的
最大值
宏定义
系列内容。用于记录各式各样有用或者没用的
宏定义
☺。
宏定义
说明 用于通过比较来得到三个
数
中
数
值的
最大值
。例如x=20x=20x=20,y=40y=40y=40,z=80z=80z=80,会得到80。 该
宏定义
来自linux kernel 3.10。 实现代码 #define
max
3(x, y, z) ({ \ typeof(x) _
max
1 = (x); \ typeof(y) _
max
2 = (y); \ typeof(z) _ma
C语言 请定义
一个
宏,
求
两个
数
的
最大值
一、简述 记--请定义
一个
宏,
求
两个
数
的
最大值
。 二、测试例子 2.1 例子1 测试代码: #include <stdio.h> #define
MAX
(x,y) x>y?x:y int main(int argc, char* argv[]) { int
max
Val =
MAX
(2,5); printf("
max
Val is %d.\n",
max
Va...
C语言
70,017
社区成员
243,265
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章