• [^] # Re: Quelques infos

    Posté par . En réponse au journal Comment les programmeurs écrivent du code flottant ?. Évalué à 2.

    Qu'entends-tu par « interdit » ? Le compilateur comprend parfaitement ce que tu veux dire lorsqu'il est écrit

    res = (a + b) + (c + d)

    Tu n'as aucun moyen de savoir si (a+b) sera effectué avant (c + d), mais sinon, le compilateur « comprend » les priorités. Par contre, si par une analyse statique quelconque il voit que les parenthèses sont inutiles, et qu'il pourrait s'arranger différemment, il ne va pas se gêner.

    Le vrai problème de l'ordre d'évaluation se pose plutôt pour des choses du genre

    res = f1() + f2() + f3() + f4();

    (en supposant que les f*() sont définies dans une unité de compilation différente)

    Dans ce cas-là, si toi, programmeur, tu demandes un ordre spécifique en parenthésant, je ne suis pas certain que le compilateur s'amuse toujours à changer l'ordre des opérations ...