Logical AND, OR: a avaliação da esquerda para a direita é garantida?
A avaliação da esquerda para a direita dos operadores lógicos &&
||
) garantido
Digamos que eu tenho isso:
SDL_Event event;
if (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
// do stuff
}
}
Isso é garantido como sendo o mesmo?
SDL_Event event;
if (SDL_PollEvent(&event) && event.type == SDL_QUIT) {
// do stuff
}
Isso também pode ser muito importante, digamos que temos dois requisitos,a
eb
. Requerimentoa
é muito mais provável que falhe do queb
. Então é mais eficiente dizerif (a && b)
do queif (b && a)
.