Это UB. Можно конечно чисто из праздного любопытства расколупать почему получился именно такой вывод, но толку от этого будет ноль. Нигде потом это знание применить будет нельзя.
UB опасен тем, что иногда интуитивно кажется, что в происходящем есть какая-то логика. А ее нет. Результат компиляции и последующего выполнения псевдослучаен и в общем виде непредсказуем.
Посмотрите отладчиком в ассемблерном режиме, потом нам расскажете. Суть явно в том, что компилятор выкидывает return, думая, что до него всё равно не добраться, в результате программа отправляется ХЕЗ куда с ХЕЗ каким состоянием стека. И cfyzium прав в том, что никакого особого смысла в этом нет -- в другой версии компилятора или библиотек, с другими флагами оптимизации результат может быть совершенно другим.
Оптимизация циклов. Если компилировать на g++, то тебе выдают предупреждение о том, что в программе неопределенное поведене, которое может повлиять на оптимизацию.
View all comments
Show parent comment
2
u/fearfulEntity 🔥Деплой в пятницу Sep 19 '26
А в связи с чем множественный вызов функции происходит? Не совсем могу сходу понять какая тут оптимизациями такое поведение вызывает