Здравствуйте, vit_rsdn, Вы писали:
_>такой код:
_>void main()
_>{
_> int sh = 188;// это неважно, главное чтоб было больше чем 32
_> int a = 4; // это тоже не важно, главно чтоб а не 0
_> if( a << sh )
_> {
_> printf( "asdf\n" );
_> }
_>}
_>попробуйте в релизе и дебаге.
_>У меня по разному.
_>Подскажите, так и должно быть ?
У меня при компиляции с /O2 ничего не выводится. При запуске под отладчиком видно, что компилятор скомпилировал этот код вот в такое:
--- d:\cpp\vc7bugs\test1.cpp ---------------------------------------------------
#include <stdio.h>
void main()
{
int sh = 188;// это неважно, главное чтоб было больше чем 32
int a = 4; // это тоже не важно, главно чтоб а не 0
if( a << sh )
{
printf( "asdf\n" );
}
}
00401010 xor eax,eax
00401012 ret
--- f:\vs70builds\6030\vc\crtbld\crt\src\crt0.c --------------------------------