C中的MAX和MIN是多少?#define函数

Jos*_*rra 0 c c++ max min c-preprocessor

我是一名学生,我的老师给了我锻炼已经解决了学习,在他的练习中我看到了这句话:

 #define MIN(a,b) ((a) < (b) ? (a) : (b))
Run Code Online (Sandbox Code Playgroud)

我之前从未使用过#define.

我不明白:

((a) < (b) ? (a) : (b))
Run Code Online (Sandbox Code Playgroud)

代表.

看起来像'?' 比较人不确定.有人可以帮帮我吗?

Rvd*_*vdK 5

它被称为条件运算符(或三元运算符)

#define MIN(a,b) ((a) < (b) ? (a) : (b))
Run Code Online (Sandbox Code Playgroud)

手段:

if ((a) < (b)){   
  return a;  
} else {   
  return b; 
}
Run Code Online (Sandbox Code Playgroud)

所以,如果你这样做:

int test = MIN(5,10);
Run Code Online (Sandbox Code Playgroud)

测试将是5

链接到维基页面的麻烦:http://goo.gl/bw2sL