Kevin Kofler Le 11/07/2002 à 16:28Edité par Kevin Kofler le 11/07/2002 à 16:29 Oui, c'est une solution. En ce qui concerne !!, c'est souvent utilisé de cette manière. Mais j'ai lu quelque part qu'il y a des compilateurs qui "optimisent" !! en le virant - je ne sais pas si c'est vrai, et si c'est vrai, je pense que ces compilateurs sont bogués (parce que tu n'es pas le seul à utiliser !! comme ça). Ce qui marche à coup sûr est: (condition1?1:0) & (condition2?1:0) | (condition3?1:0). Mais c'est long.
Effectivement je suis loin d'être le seul à écrire ce truc. J'ai déjà vu ça dans des sources diverses. Pour moi il est clair que les compilateurs qui "optimisent" la double négation en la supprimant sont bogués. A mon avis ces compilos bogués doivent aussi "optimiser" des expressions telles que (x/2)*8 en x*4 et d'autre conneries du genre...
J'espère que GCC n'est pas bogué sur ces points !?

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Je comprends que de supprimer le double '!' est un bogue, mais pourquoi optimiser (x/2)*8 en (x>>1)<<3 est un bogue (si x est un int) ?
jackiechan Le 11/07/2002 à 20:15Edité par Boo le 11/07/2002 à 20:16 Ah merde, j'avais pas bien lu, je croyais que tu n'aimais pas les optimisations du genre : x*4 => x<<2
Et tu as raison, sinon, je suis d'accord, c'est un bogue d'optimiser 8.(x/2) en 4.x