野火电子论坛

标题: 【每日一题】 宏定义 比较两个数大小 [嵌入式校园招聘笔试题] [打印本页]

作者: fire    时间: 2014-10-10 11:22
标题: 【每日一题】 宏定义 比较两个数大小 [嵌入式校园招聘笔试题]
该题目经常被全国各大公司用于校园招聘笔试题目

知识点:标识符#define的应用
题目:写一个"标准"MIN ,这个宏输入两个参数并返回较小的一个。
答案:答题回复可见,请做题。



作者: yppdyy    时间: 2014-10-10 11:26
#Define YEAR_SEC 31536000
作者: 24841500    时间: 2014-10-10 11:26
#define min(a,b) a>b?b:a
作者: yppdyy    时间: 2014-10-10 11:28
为啥我看到的题目不是这个
作者: fire    时间: 2014-10-10 11:28
24841500 发表于 2014-10-10 11:26
#define min(a,b) a>b?b:a

注意括号的使用
作者: 刀口    时间: 2014-10-10 11:29
#define MIN(a,b) (a>b)?b:a
作者: dajin1234    时间: 2014-10-10 11:31
本帖最后由 dajin1234 于 2014-10-10 11:32 编辑

#define MIN(x,y) ((x) <= (y) ? (x) : (y))  
作者: yinhao    时间: 2014-10-10 13:23
#define MIN(x,y) ((x) <= (y) ? (x) : (y)) 最安全
作者: fire    时间: 2014-10-10 14:19
刀_口 发表于 2014-10-10 11:29
#define MIN(a,b) (a>b)?b:a

弱爆啦。。。。。。。。。。。。。
作者: carollim    时间: 2014-10-10 16:07
本帖最后由 carollim 于 2014-10-10 16:09 编辑

#define MIN(a,b) (a>b)?a:b
作者: xiaoyu2014    时间: 2014-10-10 16:16
学习中强烈支持,非常感谢哥们
作者: lzw520    时间: 2014-10-10 16:26
#define  MIN(a,b)  ((a-b>0)? b:a)
作者: qq1063836243    时间: 2014-10-10 17:20
不会啊,看看答案~~~
作者: hxtmark    时间: 2014-10-10 17:22
也是不会啊。。。。看答案
作者: SWEETWY    时间: 2014-10-10 17:34
#define MIN(x,y) ((x) <= (y) ? (x) : (y))
作者: 灼灼其华    时间: 2014-10-10 17:46
#define MIN(x,y) (x)<=(y)?(x)y)
作者: xiaowen    时间: 2014-10-10 19:26
#define MIN(X,Y) (X>Y?X:Y)
作者: 芯儿    时间: 2014-10-10 20:28
#define  MIN(a,b)    {(a)>(b)?(b)a)}
作者: 1075482900    时间: 2014-10-10 21:11
#define MIN(a,b)  ((a<b)?(a)b))
作者: lfy    时间: 2014-10-10 21:14
强烈支持,非常感谢哥们
作者: smj    时间: 2014-10-10 21:44
看看答案!
作者: 12ycli    时间: 2014-10-10 22:02
看看是什么答案
作者: 12ycli    时间: 2014-10-10 22:02
看看是什么答案
作者: gq21    时间: 2014-10-10 23:03
#define MIN(a,b) (a<b)?a:b
作者: ArmLinux    时间: 2014-10-10 23:09
#define MIN(A,B) (A)>=(B)?(B)A)
作者: ArmLinux    时间: 2014-10-10 23:12
#define MIN(A,B) (A)>=(B)?(B)A)  上一条输入的内容,怎么会有个笑脸呢,再打一遍看下,还有没有。
作者: ArmLinux    时间: 2014-10-10 23:14
#define MIN(A,B) (A)>=(B)?(B)A)   难道是因为输入的时候,用的是搜狗输入法的原因,换成另外一种输入法试一试,最后试一次。
作者: fire    时间: 2014-10-11 09:11
ArmLinux 发表于 2014-10-10 23:14
#define MIN(A,B) (A)>=(B)?(B)A)   难道是因为输入的时候,用的是搜狗输入法的原因,换成另外一种输入法 ...

对了。。。。。。。。。。。。。。。。。。。。。。
作者: fire    时间: 2014-10-11 09:11
gq21 发表于 2014-10-10 23:03
#define MIN(a,b) (a

出现等于的情况呢
作者: 老阮    时间: 2014-10-11 09:43
本帖最后由 老阮 于 2014-10-11 09:44 编辑

#define MIN(DataA, DataB)  ((DataA>DataB) ? DataB : DataA)

要多加括号啊...

平时确实define用的少。。。最多就常数定义...

作者: fire    时间: 2014-10-11 09:44
老阮 发表于 2014-10-11 09:43
#define MIN(DataA, DataB)  ((DataA>DataB) ? DataB : DataA)

要多加括号啊...

这样是比较出来了,但是返回后到底是哪个啊
作者: 守麦人    时间: 2014-10-11 10:28
#define min(a,b) a>b?b:a
作者: Xuan_45    时间: 2014-10-11 14:31
我是来看答案的
作者: 糟糠肉肉    时间: 2014-10-11 14:52
走过路过,不能错过
作者: lutianfei    时间: 2014-10-11 17:35
来学习一下
作者: 好好学习    时间: 2014-10-11 19:14
#define MIN(X,Y) return (X>Y)?Y:X;
作者: 高江涛    时间: 2014-10-11 20:26
#define MIN 100


作者: a594373280    时间: 2014-10-11 21:14
#define MIN(a,b) ((a)<(b)?(a)b))
作者: liuqw    时间: 2014-10-11 21:27
强烈支持,非常感谢哥们强烈支持,非常感谢哥们
作者: vc9181    时间: 2014-10-11 21:29
学习了强烈支持,非常感谢哥们
作者: hkhkdyx    时间: 2014-10-11 21:48
走过路过,不能错过走过路过,不能错过走过路过,不能错过走过路过,不能错过
作者: hkhkdyx    时间: 2014-10-11 21:49
走过路过,不能错过走过路过,不能错过走过路过,不能错过走过路过,不能错过
作者: 小王和小白    时间: 2014-10-11 22:35
来试试水平
作者: ゞ從此消失╭ァ    时间: 2014-10-12 10:16
#define MIN(X,Y)    (if(X>=Y)return Y;else return X;)
作者: 小猪zZ    时间: 2014-10-12 18:22
#define MIN(a,b) (a<b)?a:b
作者: 大王叫我来巡山    时间: 2014-10-12 18:30
#define MIN(A,B) (A)>=(B)?(B)A)
作者: 无极电工    时间: 2014-10-12 19:40
抢沙发~给哥们顶一个
作者: 我不是二货    时间: 2014-10-12 21:44
#define min(a, b)  ((a) <=  (b))? (a)b) )  最外面一层加括号可以避免 在define 替换文本后 因为优先级的问题 导致运算偏离本意 而里面也是同样的道理  避免前面用define 定义的a 没有加括号 导致文本替换后出现错误

作者: 曦亦    时间: 2014-10-12 22:56
#define min(a,b) (a>b)?b:a
作者: fire    时间: 2014-10-12 23:01
我不是二货 发表于 2014-10-12 21:44
#define min(a, b)  ((a)

二货分析的不错
作者: fire    时间: 2014-10-12 23:02
曦亦 发表于 2014-10-12 22:56
#define min(a,b) (a>b)?b:a

你这个求的是大的那个数
作者: zyj    时间: 2014-10-13 08:56
#define MIN(a,b) (a>b? b:a);
作者: zyj    时间: 2014-10-13 09:06
zyj 发表于 2014-10-13 08:56
#define MIN(a,b) (a>b? b:a);

貌似不能加分号
作者: fire    时间: 2014-10-13 09:25
zyj 发表于 2014-10-13 09:06
貌似不能加分号

宏定义都没有分号

因为 程序里面的语句已经有分号了,如果宏里面有分号的话,那到时候程序编译的时候,宏一扩展的话那就两个分号了,两个分号是啥子意思啊
作者: 斯塔姆32    时间: 2014-10-13 11:37
#define MIN(a,b) a>b?b:a

作者: 逗比    时间: 2014-10-13 12:40
走过路过,不能错过
作者: jixingan    时间: 2014-10-13 22:10
哇塞抢沙发~给哥们顶一个
作者: zyj    时间: 2014-10-14 08:56
fire 发表于 2014-10-13 09:25
宏定义都没有分号

因为 程序里面的语句已经有分号了,如果宏里面有分号的话,那到时候程序编译的时候, ...

soga...原来这样啊 真理
作者: 亦羽々疯子    时间: 2014-10-14 09:55
#define MIN(x,y) ((x) <= (y) ? (x) : (y))
作者: 夜辰    时间: 2014-10-14 15:45
强烈支持,非常感谢哥们
作者: 我是个扯扯    时间: 2014-10-14 19:06
这个考的应该是括号。。。试试
#define MIN(x,y) ( ( x ) > ( y ) ? ( x );( y ) )

作者: ghpry789    时间: 2014-10-14 22:40
#define min(a,b);

  

作者: hzjx    时间: 2014-10-15 16:41
#dfine f(a,b) a<b?a:b
作者: 齐峰    时间: 2014-10-15 18:59
#define a 4
#define b 5
a MIN b
作者: lhn    时间: 2014-10-15 19:08
#define MIN(a,b)  ((a>b)?b:a)
作者: 清风明月逍遥云    时间: 2014-10-18 14:03
#define MIN(x,y) ((x)<= (y)?(x)y))
作者: 明明白白    时间: 2014-10-18 14:12
我只是想说:有没有人考虑过浮点数无线循环小数比较的时候?
作者: 疯疯疯    时间: 2014-10-19 18:42
#define min(a,b)  (a>b?b:a)
作者: 疯疯疯    时间: 2014-10-19 18:45
好吧,答案还是不标准
作者: 艾斯    时间: 2014-10-19 18:55
强烈支持,非常感谢哥们
作者: 为你勇敢的自己    时间: 2014-10-19 21:15
每天看看,好好学习

作者: sky123    时间: 2014-10-20 08:47
强烈支持,非常感谢哥们
作者: gsc617    时间: 2014-10-20 15:00
写好了,就看答案了*^_^*
作者: SnowFlying    时间: 2014-10-20 15:26
强烈支持,非常感谢哥们
作者: xiaobai    时间: 2014-10-20 15:35
#define mi
作者: 传说中的小bai    时间: 2014-10-20 15:51
#define MIN(a,b) (a<b?:a,b)
作者: 威wei    时间: 2014-10-21 17:32
#define MIN  (a<b?a:b)
作者: zzh    时间: 2014-10-21 20:11
抢沙发~给哥们顶一个
作者: inkfishg    时间: 2014-10-21 20:44
#define min(a,b) a<b?a:b
作者: inkfishg    时间: 2014-10-21 20:46
呀~~~括号掉了~~
作者: 389125903    时间: 2014-10-22 10:39
学习  学些
作者: xiaod2633    时间: 2014-10-22 11:11
unsigned int a,b;
unsigned int min(){
  unsigned int value_min =0;
  if(a>b)
  {
    value_min=b;
  }
  else
  {
    value_min=a;
  }
}

#defien Min_Value()  min()
作者: chenyude    时间: 2014-10-22 19:20
#define MIN(A,B) ((A)<(B)?(A):(B))
作者: while.1    时间: 2014-10-22 21:48
抢沙发~给哥们顶一个抢沙发~给哥们顶一个
作者: delong    时间: 2014-10-23 07:24
#define MIN(a,b) a>b?b:a
作者: hanru08    时间: 2014-10-23 11:28
走过路过,不能错过看看答案对不对
作者: smartbag    时间: 2014-10-23 18:09
强烈支持,非常感谢哥们
作者: s1y1y1    时间: 2014-10-23 23:42
看看答案……………………
作者: slwope    时间: 2014-10-24 10:55
#define MIN a<b?a:b
作者: vvspacetime    时间: 2014-10-24 13:46
#define min x = (a <=b)?a:b
作者: vvspacetime    时间: 2014-10-24 13:52
define MIN(A,B) ((A < B)?A:B)
作者: fillthesky    时间: 2014-10-24 15:24
强烈支持,非常感谢哥们
作者: ahu逍遥    时间: 2014-10-25 16:38
强烈支持,非常感谢哥们
作者: 襟湿容颜    时间: 2014-10-25 17:06
抢沙发~给哥们顶一个
作者: 86354120    时间: 2014-10-25 19:57
帅呆了,赞一个
作者: lw891102    时间: 2014-10-26 12:40
#define min(a,b) a<b? a:b
作者: 薄荷少年    时间: 2014-10-26 13:48
#define MIN a<b?a:b
作者: Tacey    时间: 2014-10-26 19:23
估计就是楼上的答案了,不过还是来看哈标准答案,嘿嘿
作者: 流水花落意    时间: 2014-10-26 19:46
#define a<b?a:b
作者: 李小灰    时间: 2014-10-26 19:58
#define Min(a,b)  if(a<b) return a;
                  else return b




欢迎光临 野火电子论坛 (https://www.firebbs.cn/) Powered by Discuz! X3.4