Ответ 1
Оба выражения ложны, поэтому код никогда не компилируется.
Вот потенциальные объяснения того, почему программист не захотел использовать очевидную директиву #if 0
препроцессора для отключения секции кода:
- программист не захотел
grep '#if 0'
найти фрагмент кода. - Локальные правила кодирования запрещают
#if 0
и, возможно, применяют это правило с помощью script. Программист обнаружил искаженную работу. - некоторые редакторы программистов (например,
vim
) раскрашивают разделы#if 0
в качестве комментариев, используя другое выражение препроцессора, которое побеждает это. - программист мог подумать, что после
#if
требуется булевское выражение. Использование круглых скобок поддерживает это объяснение, но может сказать только программист. - исходный код имел
#if (OPTION > 1)
иOPTION
был изменен на1
с помощьюsed
script или другого метода замены глобального текста. - программист, возможно, хотел привлечь внимание следующего читателя. Либо для юмористической цели, либо для какой-то другой неясной цели. Цель достигнута в этом случае.
- как отмечено в некоторых комментариях, это может быть неудачная попытка обфускации кода, чтобы повысить безопасность работы... Для этого я предлагаю оператор get:
#if (0 <- 1)
или appromixator:#if (1 ==~ 1)
.