• [^] # Re: Haut les mains ! c'est un Hold Up !

    Posté par (site web personnel) . En réponse au journal Haut les mains ! c'est un Hold Up !. Évalué à 1.

    Si si, ça fonctionne. L'expression est evaluée de droite à gauche, ça revient à faire :
    a^=b;
    b^=a;
    a^=b;

    on va noter a0 et b0 les valeurs initiales de a et b.
    Après la première ligne, a vaut a0^b0 et b vaut b
    Après la seconde ligne, a vaut a0^b0 et b vaut b0^(a0^b0) == a0
    Après la troisième ligne, a vaut (a0^b0)^b0==a0 et b vaut a0

    Il me semble même que gcc a un algo exprès pour optimiser cette expression ...
    cqfd ...