Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Непонятный момент с #define  [new]
faustgreen
Member

Откуда:
Сообщений: 409
DO test WITH 2

PROCEDURE test
LPARAMETERS tncode

DO CASE
CASE tncode = 1
#DEFINE lnA 10
CASE tncode = 2
#DEFINE lnA 20
MESSAGEBOX(lnA)
ENDCASE


Результат работы lnA = 10. Почему ?
22 фев 16, 20:15    [18852002]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный момент с #define  [new]
правильный проходящий.
Guest
faustgreen,

Потому, что это средство работает во время компиляции, а не во время выполнения программы.
22 фев 16, 23:58    [18852511]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный момент с #define  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Для завершения области действия #DEFINE следует использовать #UNDEFINE. В противном случае, все последующие #DEFINE для той же константы - игнорируются. Точнее, они заменяются на соответствующее значение константы.
24 фев 16, 18:41    [18859106]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный момент с #define  [new]
Dima T
Member

Откуда:
Сообщений: 15302
#DEFINE это определение константы. Не надо ее использовать как переменную.
24 фев 16, 18:57    [18859178]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить