El cortocircuito en C es cuando un operador lógico no evalúa todos sus argumentos.
Tomemos por ejemplo y &&, es bastante obvio que 0 && WhoCaresva a ser falso sin importar lo que WhoCaressea. Debido a esto, C simplemente omite la evaluación WhoCares. Lo mismo ocurre 1 || WhoCares, siempre será cierto. Debido a esto, podemos escribir código como
CanFireMissiles && FireMissiles()
De esta forma, evitamos realizar operaciones potencialmente imposibles. Si no podemos disparar los misiles, ciertamente no queremos intentarlo. Esto se usa comúnmente con punteros, especialmente punteros de archivo.
bool isN(int* ptr, int n){
return ptr && *ptr == n;
}
Esto se desarrolla de muchas otras formas útiles para evitar la computación innecesaria
isFileReady() || getFileReady()
Esto evita hacer un trabajo extra si no es necesario.
&&operador.