Je me suis fais surprendre, avec l'utilisation des modulos.

confiant de l'indication donné par Bob dans l'article :
http://c.developpez.com/faq/c/?page=...RATEURS_modulo

je me suis laissé allé, et j'ai utilisé l'opération sans plus m'en soucier. Manque de pot, j'avais un comportement hératique de mon programme (les valeurs modifiées dans un tableau n'étaient pas les bonnes)

solution :

L'operateur modulo, ainsi que la division entière dépendent de l'implémentation du compilateur. Et si la définition coincide avec la formule mathématique, sur les entiers positifs, ce n'est pas forcément le cas pour les entiers négatifs.

ainsi
-1 % 4 vaudra soit -1 (cas le plus courant) soit 3 (respect de la formule mathématique).
moi qui m'attendais à un resultat positif j'ai été bien surpris.

la seule recommendation dans la norme, c'est que le choix doit etre cohérent de sorte que :

a = (a/b)*b + (a%b)

Donc pour conclure, il faudrait mettre à jour l'article.

Et voila ma question, y'a t-il une option du compilateur (gcc en l'occurence) pour le forcer à utiliser la définition mathématique plutôt que la définition par défault qui ma fois ne sert à rien puisqu'elle ne vérifie pas la propriété :

0 <= i%N < N

Et s'il n'y en a pas, quel sont les versions de gcc qui utilise la définition que je veux.

Merci