【C言語】
三項演算子(はてな?)は
改行すると読みやすい

三項演算子 はてな?

■三項演算子は簡潔な式を書く時便利

#include <stdio.h>
int main(void)
{
    for(int i = 0 ;i < 10;i++){
        for(int j = 0 ; j < 10 ;j++){
            int max = (i > j) ? i : j;//★推奨
            printf("%dと%dの最大値は%d\n",i,j,max);
        }
    }
}

聖典 プログラミング言語Cで紹介されている例です。


■適度に改行すると読みやすい

#include <stdio.h>
#include <time.h>

int main(void){
    int    西暦;
    printf("西暦入れて\n");
    scanf("%d",&西暦);
    printf("%d年は%s\n",
        西暦,
        __isleap(西暦)?
            "閏年です":
            "閏年ではありません"
    );
}

適度に改行すると
if文より簡潔で理解しやすくないですか?


複雑な式には向かない

int f(int flg) {//NG
    int x = 0x80 | (flg == 0) ? 0 : 0xFF00 ;
    return x;
}

0x80 | (flg == 0) ? 0 : 0xFF00 ;は、コンパイラによって
(0x80 | (flg == 0)) ? 0 :0xFF00 ;と解釈されるので、
flg の値に無関係に(0x80 | (flg == 0)) は真と評価されます。


■複雑な式は素直にif文で書こう

int g(int flg) {  
    if(flg == 0)  return 0x80;
    else           return 0xFF00 | 0x80;
}