При компилиране на Visual Studio след C код, резултатът е 4.
void main() { int c = 1; c = c<<34;}
Кодът за сглобяване, както се вижда от прозореца за разглобяване на Visual Studio, е
shl eax,22h
От сглобяването е лесно да се види, че преместваме 34. Тъй като цялото число тук е 4 байта, от резултатите е очевидно, че модулната операция е извършена на ниво машина, за да направи това да работи като преместване с 2.
Чудех се дали това поведение е стандартизирано в различните платформи или варира в различните платформи?
void main() {...}
? - person wildplasser   schedule 20.04.2013