Curto-circuito em C é quando um operador lógico não avalia todos os seus argumentos.
Tomemos, por exemplo &&, e , é óbvio que 0 && WhoCaresisso será falso, não importa o que WhoCaresseja. 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.