(#if 0 или #if 1) А зачем оно надо?
В действительности, когда видишь в первый раз такой код:
#IF 0 ... #ENDIF
или такой:
#IF 1 ... #ENDIF
задаешься вопросом: "А зачем оно надо?". Если заглянуть в техническую часть этих макросов (а ведь это именно макросы), то первый код не выполняется никогда, второй выполняется всегда. Если с первым более менее ясно (можно использовать как комментарии), то второй вообще ни в какие рамки. Да и зачем использовать такой странный способ, если у каждого языка есть свои встроенные способы комментирования?
Давайте представим себе большую программу состоящую из нескольких модулей, в каждом куча процедур и функций. Далее представим, что определенная часть процедур зависит от одной конкретной процедуры, в которой вы никак не можете определиться с кодом. То есть смысл ее работы утвержден, но реализация алгоритма не утверждена. Или проще, у вас есть два способа сделать эту процедуру , но пока вы не знаете какой лучше. Конечно для того чтобы понять , надо их оттестировать.
Как же проще и быстрее переключать эти способы? Вот как раз тут и выручат данные макросы. Взгляните на код:
Sub PROC() #IF 0 Rem Здесь код 1 #ELSE Rem Здесь код 2 #ENDIF End Sub
В данном случае будет выполняться второй код. Но если вам нужно провести тесты над первым кодом, достаточно просто заменить 0 на 1. Попробуйте проделать эти операции с помощью комментариев. Как минимум надо иметь редактор , который умеет делать комментарии блоком, и даже так надо один разкомметировать , второй закомметировать. При большом объеме кода это тоже длительная операция. Метод копирования\вставки тоже заставит переключаться между редакторами или отдельными вкладками. При том в любом случае надо искать\выделять начало и конец процедуры\кода. Можно еще написать две процедуры и менять имена, но это вообще не АЙС. И это я расписал распутье только с одной процедурой, а представьте что их множество... Может конечно есть и другие способы, но я пока быстрее макросов ничего не вижу.
При использовании макросов, компилятор возьмет ту часть , которую вы ему укажете. То есть когда вы полностью отладите свою программу, можно даже не стирать неработающую часть программы, на конечный исполняемый файл это не повлияет.
Всего доброго!