- 1
cout << (100 << 1 << (3000 << 2)) << 4 << 2;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+40
cout << (100 << 1 << (3000 << 2)) << 4 << 2;
08.02.11 Теплый вечер. IDE. Code::Blocks. Цикл. Я чувствую как меня охватывает зверский аппетит.
12.02.11 Индия. Все в лучших традициях.
Потекло со стула.
Я не крестоблядь.
Ну и да, я имел в виду 20042, а не 242. Невнимательно писал - и то, и другое - "двести сорок два", только в одном случае с запятой :D
PS: Не проверял)
А сам интеловский проц берет по модулю 32 (т.е. сдвиг 32-битного регистра на 32, 64 и т.п. вообще ничего не делает)... В общем UB есть UB. Может произойти что угодно.
Есть даже ненулевая вероятность, что компилятор вообще выбросит нахер весь код рассуждая так: "программист умный, UB'а не допустит, а значит сюда управление никогда не попадет, и этот код не нужен".
Но выводить что-то надо, вот компилятор и вставляет какое-нибудь число.
Насчёт "выкинет код" есть неплохая статья (+ страницы, на которые ссылается)
http://blogs.msdn.com/b/oldnewthing/archive/2014/06/27/10537746.aspx
http://img.huyandex.com/FilesPics/huyandex/109/000/077.jpg
http://f12.ifotki.info/org/52aa23dba827934d9de392f409792e54bc5f6c13 9384661.jpg