В каких версиях C блок внутри скобки используется для возврата допустимого значения?
Если я сделаю:
int j = ({int x = 7; x+3;});
В i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (сборка Apple Inc., сборка 5646) gcc компилируется просто отлично. Блок в вопросе({int x = 7; x+3;})
возвращает значение последнего оператора в качестве значения блока. Если вы удалите скобки, он не скомпилируется. Могу ли я ожидать, что это будет работать в большинстве компиляторов Си?
Кроме того, как называется эта конструкция? У меня было много проблем с поиском, потому что поисковые системы не индексируют()
или же{}
и C - ужасный поисковый термин. Я также не смог найти ничего об этом ни в одной из моих книг, возможно, потому что я не знаю, что искать.