MAIL2FUTURE.NET - Free Mail Delivery Service
MAIL2FUTURE.NET - Служба Доставки Злектронной Почты
Re: Ещё - Plus , 30.11.2004 14:59 MSK
: : : Нужно поменять местами значения двух переменных: A и B.
: : : Ну, например: T = A; A = B; B = T;
: : : А можно ли обойтись без временной переменной T?
: : :
: : : Если решение вам уже было известно - напишите просто: "А я знаю".
: :
: : Я знаю, это очень просто.
:
: Eto znaet kazdii programist.

Ах, вот как?
Впрочем, чего ещё ожидать,
если теперь программистом считают человека,
умеющего "распечатать ворд".
Во-первых, программист-практик в первую очередь
вспомнит о команде XCHG из x86, и инструкции __asm.
И предложит такое решение просто из вредности,
так как оно действительно оптимально.
Автор задачи сморщится и попросит обойтись
каким-нибудь машинно-независимым способом.
Следующий вариант, я уверен, будет такой:
A=A^B;B=A^B;A=A^B;
Автор станет совсем грустным, и скажет: "Это ведь так просто".
На что программист ему скажет, что Basic в случае
переполнения просто вылетит, а если переменные
не целого типа, то возможна потеря точности.
И релиз будет выглядеть примерно так:

#define switch(a,b) { \
__ASSERT(typeof(a)==typeof(b)); \
if (sizeof(a) > 0) {*(char*)&a=

ну, и так далее...

Тема:
Текст:
Автор:
Пароль: ( только для авторизации )