Re: vs2003 7.1.3038
От: Peregrin  
Дата: 30.11.06 10:10
Оценка:
Здравствуйте, 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 --------------------------------

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.