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 && WhoCares
va a ser falso sin importar lo que WhoCares
sea. 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.