条件演算子の? : は右結合ということですが、
a() { printf("a\n"); return 0; }
b() { printf("b\n"); return 0; }
c() { printf("c\n"); return 0; }
d() { printf("d\n"); return 0; }
e() { printf("e\n"); return 0; }
f() { printf("f\n"); return 0; }
g() { printf("g\n"); return 0; }

main() {
a() ? b() ? c() : d() : e() ? f() : g();
}

とした場合、結果が
a
e
g
となりました。

? : の右結合とは、どの部分に掛かってるんでしょうか?