Заявления-выражения GCC - какова их история по сравнению со стандартами C?
С gcc
следующее является допустимым оператором C:
foo ({bar(1); baz = 2;})
Что эквивалентно
bar(1);
baz = 2;
foo(2);
Отредактировано: вот мои (надеюсь, более информативные) вопросы:
- Был ли комитет / орган по стандартизации ISO C ходатайствовал о том, чтобы сделать их частью стандарта C?
- Если это было, это было до C99? До С11? Потом?
- По каким причинам было указано или предложено не принимать это как часть языка?
- Есть ли какая-то большая ловушка или недостаток в использовании этой конструкции, о которой я не знаю?