Пример использования макроопределений |
Файл macros.inc
#define MacroNew #define Macro2 3 #define MacroStr 'Привет!' #define MacroMsg(mp1) message('Тест Макро: '+#mp1) #declare MacroMsg2(mp1, mp2) message('Время начала компиляции: '+'#__DATETIME__'); message('Файл программы: '+'#__FILE__'); message('Версия Атлантис: '+'#__TOOLVER__'); message('Тест Макро: '+#mp1); message('Тест Макро: '+#mp2); #end
Файл macros.vip
interface MacroTest 'Тест макросов'; show at (00,00,80,28); create view from Persons; #include macros.inc handleEvent cmInit: { #undef MacroErr var s: string; s:= #MacroStr; #MacroMsg(s); #ifdef MacroNew s := 'Свежая версия'; #else #if #Macro2 > 2 s := 'Старая версия'; #else #define MacroErr Неработоспособная версия #(Macro2)! #end #end #MacroMsg(s); #ifdef MacroErr #error Ошибка компиляции: #MacroErr #else #info Компиляция прошла успешно #MacroMsg2('Выполнение программы завершено.', 'Нажмите ESC') #end } end; end.
Компиляция завершается сообщением: "Информация: Компиляция прошла успешно".
При выполнении последовательно выдаются сообщения:
"Тест Макро: Привет! "
"Тест Макро: Свежая версия"
"Время начала компиляции: 21/05/2002 17:07:13"
"Файл программы: MACROS.INC"
"Версия Атлантис: 3.03.13"
"Тест Макро: Выполнение программы завершено. "
"Тест Макро: Нажмите ESC"
Если в файле macros.inc изменить две первые строки:
//#define MacroNew #define Macro2 1.3
то компиляция завершится ошибкой с сообщением: "Ошибка: Ошибка компиляции: Неработоспособная версия 1.3!".