On Fri, 2011-06-10 at 11:30 +0100, Patrick Dupre wrote: > Bonjour,
>
> Question de c.
> Dans un if avec un operateur "and" ou "or", est-ce que je peux etre
> sur que l'execution du premier membre est effectue avant le second
> membre ?
> En d"autre termes, est-ce que si j'ai
> if ((condition a) && (condition b))
Oui, les conditions sont toujours évaluées de gauche à droite. Tout
'statement' de manière générale l'est.
> avec (condition a) false, je peux-etre sur que la condition b n'est pas
> executee ?
Oui, également.
Je n'ai pas de copie de l'ISO C99 pour citer les bons chapitres, mais
il est tout à fait courant d'utiliser ceci:
if (ptr != NULL && ptr->foo == 42) { ... }
Qui crasherait si les 2 conditions que tu cites n'étaient pas vrai.