本文介绍了MIN和MAX用C的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在哪里 MIN
和 MAX
在C中定义,如果在所有?
什么是实现这些,因为一般和尽可能安全地输入的最佳方式? (编译器扩展/内建主流的编译器preferred。)
解决方案
They aren't.
As functions. I wouldn't use macros like #define MIN(X, Y) (((X) < (Y)) ? (X) : (Y))
, especially if you plan to deploy your code. Either write your own, use something like standard fmax
or fmin
, or fix the macro using GCC's typeof (you get typesafety bonus too):
#define max(a,b) \
({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a > _b ? _a : _b; })
Everyone says "oh I know about double evaluation, it's no problem" and a few months down the road, you'll be debugging the silliest problems for hours on end.
Note the use of __typeof__
instead of typeof
:
这篇关于MIN和MAX用C的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!