• [^] # Re: En vrac

    Posté par (site web personnel) . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 1.

    Tu veux dire C++ <= C ?

    Non, C++ est vraiment < C
    Pourquoi?
    C++ veut dire "je prend le chiffre avec le quel je fais la comparaison, puis j'incrémente". Donc le C de gauche vaut C, le C de droite vaut C+1 (incrémenté par le ++ de gauche, la gauche est testé avant la droite)

    Par contre +CC n'est pas < C
    Car +CC veut dire "j'incrémente, puis je prend le chiffre avec le quel je fais la comparaison", donc le C de gauche vaut C+1, le C de droite vaut C+1.

    Subtilité certes, il faut "juste" savoir ce que veut dire "++" en C++, et on fait jamais ça en pratique. "C++; if (C<C)" c'est plus sûr, plus compréhensible.
    Oui, il y a des piège en C++, mais il y en a aussi en Java ou Python, juste pas les mêmes.

    ça peut dépendre de l'ordre d'évaluation des expressions C++ et C qui peut varier d'un compilo à l'autre

    Et puis quoi encore. C'est dans la norme C++, un compilo qui ne fait pas ce que tu la norme est un compilo buggué. Ce n'est pas un cas de résultat indéfini, au contraire, c'est un cas d'école très classique (dans le même style que le truc sur les float en PHP qu'on retrouve dans des tests à la con)