Показать сообщение отдельно
Старый 18.09.2007, 14:16   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,709 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Макрос - это НЕ процедура. Это КОНСТАНТА. Это просто способ написания констант в отдельном месте с последующей ссылкой на это место.

Подстановка вместо имени макроса его содержимого происходит еще ДО исполнения кода. В момент компиляции. Это значит, что в Вашем случае, содержимое макроса #section() никак, никоим образом, не будет зависеть от условия. Оно всегда будет равно значению, присвоенному "ниже" по телу метода. В данном примере, всегда будет равно #define.selection(#selectField2)

Соответственно, смотрите, что именно будет в теле макроса на момент выполнения цикла while