Lol. Не надо пользоваться 2-м и 3-м способом :-) 3-й это шутка, 2-й был популярен лет 25+ назад, по-приколу. Задумайтесь, что не все переменные - целочисленные, и что переменные со знаком могут по-разному храниться в разных системах. Ну и почитайте как процессор может swap делать.
Способ с XOR можно использовать только в каких-нибудь мелких контроллерах, где вообще всё плохо с быстродействием и памятью. Или если ты молодой и пытаешься выпендриваться. Нормальные люди делают это хотя бы с помощью std::swap. Если нет необходимости перемалывать гигабайты в секунду, то будет трудно обосновать своп через XOR на кодреваью. Код нужно писать так чтоб он во-первых выполнял поставленную задачу без сайд-эффектов, а во-вторых твои коллеги могли легко его понимать. Тогда жизнь команды становится похожа на рахат-лукум.
спасибо за способ с XOR, теперь буду пользваться
Reply
Reply
Простым смертным такие методы противопоказаны
Reply
Не надо пользоваться 2-м и 3-м способом :-) 3-й это шутка, 2-й был популярен лет 25+ назад, по-приколу. Задумайтесь, что не все переменные - целочисленные, и что переменные со знаком могут по-разному храниться в разных системах. Ну и почитайте как процессор может swap делать.
Reply
Если, конечно, не учитывать, что п. 2 будет весить раза в два больше (
Reply
спасибо, отец!
Reply
Если нет необходимости перемалывать гигабайты в секунду, то будет трудно обосновать своп через XOR на кодреваью. Код нужно писать так чтоб он во-первых выполнял поставленную задачу без сайд-эффектов, а во-вторых твои коллеги могли легко его понимать. Тогда жизнь команды становится похожа на рахат-лукум.
Reply
Leave a comment