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).

questionAnswers(1)

yourAnswerToTheQuestion