Ответ 1
Он присваивает входное значение пользователя a
и распечатывает его. это делается с помощью Statement Expression
.
Выражения выписки расширение gnu gcc-компилятора не поддерживаются стандартами C/С++. Следовательно, любой код, который использует выражение оператора, не является стандартным и не переносимым.
IBM IBM XL C/С++ v7.0 также поддерживает выражения Statement Expression, и его документация объясняет их метко:
Выражения выписки:
Составной оператор представляет собой последовательность операторов, заключенных в фигурные скобки. В GNU C составной оператор в круглых скобках может отображаться как выражение в так называемом
Statement Expression
.
.--------------.
V |
>>-(--{----statement--;-+--}--)--------------------------------><
Значение выражения оператора - это значение последнего простого выражения, которое появляется во всей конструкции. Если последний оператор не является выражением, то конструкция имеет тип void и не имеет значения.
Всегда компилируйте свой код, выбрав sandard в GCC, используйте одну из опций -ansi
, -std=c90
или -std=iso9899:1990
, -std=c++03
, -std=c++0x
; для получения всей диагностики, требуемой стандартом, вы также должны указать -pedantic
(или -pedantic-errors
, если вы хотите, чтобы они были ошибками, а не предупреждениями)