Mato, enterro e jogo sal!
isso eh BEM interessante, mas ainda nao eh mais rapido q swap(xxx *a, xxx *b){xxx c; c=*a;*a=*b;*b=c} (bitwise e atribuicao consomem uma instrucao de assembly ambas e os enderecos sao resolvidos em compilacao), nem estamos programando pra memorias menores q 128bytes (problemas com stack) e a complexidade do codigo aumentou (quem programa bastante (ou melhor, de forma descente) sabe q complexidade no codigo eh um serio problema, tanto de compreensao como de depuracao).
Vcs acham q isso deve ser usado??
(eu, particularmente quebro os dedos do fdp q escrever isso aqui no trampo! mas demito antes pra nao ter processo trabalhista! Ou mato, enterro e jogo sal!) hehehehehehehehe