-1

私はマクロを読んでいて、この #define が何をするのか知りたいですか? 「?」がわかりません。そしてその ":"。もしそれが

#define min(a,b) (a < b ? a : b)
4

2 に答える 2

6

これはマクロ機能ではなく、C のコア機能であり、条件演算子と呼ばれる三項演算子です。

x = a < b ? a : b

本質的には次のとおりです。

if (a < b)
   x = a
else
   x = b

つまり、 ifが true、そうでない場合(cond ? a : b)の値を持ちます。acondb

于 2013-11-07T20:59:31.930 に答える
0

? マクロとは関係ありません。これは三項演算子です。これは if-else 演算子に似ています。

簡単な例:

c = (a < b ? a : b)

このコードは、a<bが真の場合は a が c に割り当てられ、a<bが偽の場合は b が c に割り当てられることを示しています。「三項演算子」をグーグルで検索すると、さらに読むことができます。

于 2013-11-07T21:07:29.450 に答える