[an error occurred while processing this directive]
|
a ^= b ^= a ^= b;
это красиво, и даже компилируется обычно так же, но небезопасно, как и
a[i] = i++;
И ещё интерсеный момент - часто обмен нужен только для того, чтобы сохранить новое и получить различие в битовой маске со старым.
Тогда
xchg a, old_val
xor a, old_val
new_value ^= old_value; // в new_value - маска изменившихся битов
old_value ^= new_value; // в old_value записано содердимое new_value перед данным фрагметом
E-mail: info@telesys.ru