Re[6]: C++ illegal instruction
От: sergii.p  
Дата: 05.08.25 08:26
Оценка:
Здравствуйте, ·, Вы писали:

·>Я могу понять, например, обращение к неинициализированным данным... но в данном случае — отсутствие return — неясно что тут такого требующего платить скоростью или усилиями?


да всё тоже самое. Отсутствие return по сути — это обращение к неинициализированной памяти:

int foo() {}

void main() {
  foo();
  foo();
  const auto res = foo(); //UB
}


в данном случае результат вызова foo никак не обрабатывается. Зачем нам тратить такт процессора и записывать принудительно какое-то значение в eax? Вот компилятор и не тратит. Как только попытались получить доступ к памяти, получили UB. Романтика. Это же одна из основных идей языка. Не платить за то, что не используем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.