Гость Опубликовано 11 января, 2002 Жалоба Поделиться Опубликовано 11 января, 2002 vishel u menya spor s shefom. est' "classika" int a; int b a ^= b ^= a ^= b ___________________ vopros: deistvitel'no li proishodit pryamoi swap, ili eto compiler trick, typa swap pointers. interesno, kakie est' meneniya. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 11 января, 2002 Жалоба Поделиться Опубликовано 11 января, 2002 gcc -S поможет прояснить ситуацию Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 11 января, 2002 Жалоба Поделиться Опубликовано 11 января, 2002 perepisal dlya yasnosti v unsigned short int a = 0xfa; unsigned short int b = 0x02; a = a ^ b; b = a ^ b; a = b ^ a; nda, takoe vpechatlenie shto -O# menyaet sut' dela. s -O3 main: pushl %ebp xorl %eax, %eax movl %esp, %ebp popl %ebp ret .Lfe1: bez: main: pushl %ebp movl %esp, %ebp subl $4, %esp movw $250, -2(%ebp) movw $2, -4(%ebp) movl -4(%ebp), %edx leal -2(%ebp), %eax xorw %dx, (%eax) movw -2(%ebp), %dx leal -4(%ebp), %eax xorw %dx, (%eax) movl -4(%ebp), %edx leal -2(%ebp), %eax xorw %dx, (%eax) movl $0, %eax leave ret gdb pokazivaet pryamoi swap. no eto ne ubezdaet. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 11 января, 2002 Жалоба Поделиться Опубликовано 11 января, 2002 -O - оптимизация под конкретный алгоритм. попробуй добавить printf в конце и посмотреть на ассемблерный код с -O3 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.