Curto-circuito em C é quando um operador lógico não avalia todos os seus argumentos.
Tomemos, por exemplo &&
, e , é óbvio que 0 && WhoCares
isso será falso, não importa o que WhoCares
seja. Por isso, C apenas pula a avaliação WhoCares
. O mesmo vale 1 || WhoCares
, sempre será verdade. Por isso, podemos escrever código como
CanFireMissiles && FireMissiles()
Dessa forma, evitamos fazer alguma operação potencialmente impossível. Se não podemos disparar os mísseis, certamente não queremos tentar. Isso é comumente usado com ponteiros, especialmente ponteiros de arquivo.
bool isN(int* ptr, int n){
return ptr && *ptr == n;
}
Isso ocorre de várias outras maneiras úteis para evitar computação desnecessária
isFileReady() || getFileReady()
Isso evita o trabalho extra se não for necessário.
&&
operador.