Еще раз, наши самые любимые "я = я--" вопросы. В С99 у нас есть:
6.5 Выражения # 2: между предыдущей и следующей точкой последовательности
объект должен иметь свое сохраненное значение
изменено самое большее один раз
70) В этом пункте
!! неопределенными !! выражения выражения
такие как
i = ++i + 1;
Но для неопределенного поведения могут быть варианты от случайного вывода до «выполнения программы задокументированным способом» (c99 3.4.3)
Итак, вопрос:
Документирует ли gcc поведение для операторов i = i ++, i = i-- и т. Д.?
Фактический код
int main(){int i=2;i=i--;return i;}