Next: , Previous: Compound Lvalues, Up: Operands


12.5.3 条件表达式

C ?: 表达式被转换成一条if语句,每个分支被分配给相同的临时对象。所以,

       a = b ? c : d;

会变成

       if (b == 1)
         T1 = c;
       else
         T1 = d;
       a = T1;

GIMPLE级别的if-conversion过程在适当的时候,重新引入了?:表达式。其用于向量化循环。

注意在GIMPLE中,if语句通过GIMPLE_COND来表示,正如下面所描述。