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