私は学生であり、私の先生は私に与えてくれました、そして運動はすでに勉強のために解決されました、彼の運動で私はこの行を見ます:
#define MIN(a,b) ((a) < (b) ? (a) : (b))
これまで#defineを使用したことはありません。
私は何を理解していません:
((a) < (b) ? (a) : (b))
を意味する。
'?'のように見えます よくわからない比較者でした。誰かが私を助けることができますか?
私は学生であり、私の先生は私に与えてくれました、そして運動はすでに勉強のために解決されました、彼の運動で私はこの行を見ます:
#define MIN(a,b) ((a) < (b) ? (a) : (b))
これまで#defineを使用したことはありません。
私は何を理解していません:
((a) < (b) ? (a) : (b))
を意味する。
'?'のように見えます よくわからない比較者でした。誰かが私を助けることができますか?
条件演算子(または三項演算子)と呼ばれます
#define MIN(a,b) ((a) < (b) ? (a) : (b))
意味:
if ((a) < (b)){
return a;
} else {
return b;
}
だからあなたがするなら:
int test = MIN(5,10);
テストは5になります
wikiページにリンクする問題:http://goo.gl/bw2sL
#define
新しいプリプロセッサマクロを定義します。この場合は、配置した場所にMINコードを配置します。a
およびb
「変数」は、入力としてマクロに指定したものに置き換えられます。
#define MIN(a,b) ((a) < (b) ? (a) : (b))
MIN(5,6);
//gets expanded to
((5) < (6) ? (5) : (6))
実際の式では、三項演算子を使用して、式の評価に応じてAまたはBのいずれかを返します。詳細については、次を参照してください。
http://en.cppreference.com/w/cpp/language/operator_other
最後に、質問にc ++でマークを付けたときに、マクロ以外のmax関数とmin関数を検討してください。
#include <algorithm>
...
int i=std::min(5,6);