Цитата(MrYuran @ Mar 21 2008, 10:53)

а зачем решётки перед if и else? в этом случае а должно быть определено до компиляции и не может быть переменной
Да, 'a' - константа, и не может быть переменной.
"if" в исполняемом коде - не нужен. препроцессор должен вставить требуемый код.