Коротке замикання на C - це те, коли логічний оператор не оцінює всі його аргументи.
Візьмемо для прикладу і &&
, цілком очевидно, що 0 && WhoCares
це буде помилково незалежно від того, що WhoCares
є. Через це C просто пропускає оцінку WhoCares
. Те саме стосується 1 || WhoCares
, це завжди буде правдою. Через це ми можемо писати подібний код
CanFireMissiles && FireMissiles()
Таким чином ми уникаємо робити якісь потенційно неможливі операції. Якщо ми не можемо вистрілити ракети, ми, звичайно, не хочемо намагатися. Це зазвичай використовується вказівниками, особливо файловими вказівниками.
bool isN(int* ptr, int n){
return ptr && *ptr == n;
}
Це є безліччю інших корисних способів уникнути зайвих обчислень
isFileReady() || getFileReady()
Це дозволяє уникнути зайвої роботи, якщо нам цього не потрібно.
&&
оператора.