Является ли это тернарным условным?: Правильный (Objective) синтаксис C?

Я не думал, что это возможно, но, очевидно, в Objective C это разрешено:

int a = b ?: c;

Итак, вы видите, что они здесь делают: они пропускают вторую часть тернарного выражения, так что, если b не равно нулю, b используется как вторая часть.

Это умно, но насколько я знаю, это против K&R C и, вероятно, ANSI C.

Если нет, то я годами упускал из виду ужасно хитрый синтаксический трюк ... увы!

Обновление: Это gcc.

37
задан Ben 13 January 2013 в 22:27
поделиться