Показать сообщение отдельно
Старый 19.06.2012, 10:56   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,443 / 1777 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Cardagant Посмотреть сообщение
что неверно делаю?
Макрос - это просто текстовая подстановка уровня компиляции.
Макрос работает с текстом программы(!) а не со значениями переменных.
Макрос не преобразует имя переменной в значение.

Если вы объявили макрос через имя переменной, то значением макроса будет буквально имя переменной, а не её значение.
X++:
    int NameOfVariable = 777;
    ;
    
    #define.test1(NameOfVariable)
    #define.test2(777)
    
    #if.test1(NameOfVariable)
        info("Test1: NameOfVariable");
    #endif
    
    #if.test1(777)
        info("Test1: 777");
    #endif

    #if.test2(NameOfVariable)
        info("Test2: NameOfVariable");
    #endif
    
    #if.test2(777)
        info("Test2: 777");
    #endif
За это сообщение автора поблагодарили: Cardagant (1).