Play IT

Неопределённое поведение

Интерактивное демо «Неопределённое поведение» — раздел Энциклопедия · Код и разработка.

code-devencyclopedia

Неопределённое поведение: симулятор

Один и тот же код — разные исходы при смене компилятора, оптимизаций и запуска

Две модификации i между точками следования — порядок побочных эффектов не задан стандартом C/C++.

Фрагмент кода (C-подобный)
int i = 1;
i = ++i + ++i;
return i;

Без оптимизаций — чаще "терпимое" поведение · GCC

Нажмите "Запустить снова" — один и тот же исходный код может дать разный результат.

Журнал запусков

Пока нет запусков — сравните несколько результатов подряд.

Это образовательная симуляция в браузере, а не запуск C/C++. Она иллюстрирует идею: при неопределённом поведении нельзя полагаться на повторяемость результата.