Применение заголовочных файлов - не обязательный, но рекомендуемый способ улучшения организации частей программы.
Выполняет условное включение группы команд в код на этапе компиляции, если определена константа этапа компиляции.
Синтаксис
#IFDEF | #IFNDEF ConstantName Commands[#ELSE Commands]#ENDIF
Параметры
#IFDEF
Указывает, что на этапе компиляции следует включить заданную группу команд, если была определена константа этапа компиляции с именем ConstantName. Ниже описывается, каким образом группа команд включается в код на этапе компиляции при задании #IFDEF. Если константа ConstantName определена, на этапе компиляции включается группа команд, следующая за #IFDEF и предшествующая директиве #ELSE или #ENDIF(той из них, которая встретится раньше). Если константа ConstantName не определена и задана директива #ELSE, на этапе компиляции включается группа команд, следующая за #ELSE и предшествующая директиве #ENDIF. Если константа ConstantName не определена и директива #ELSE не задана, ни одна из команд, находящихся внутри структуры #IFDEF ... #ENDIF, не включается на этапе компиляции.
#IFNDEF
Указывает, что на этапе компиляции следует включить заданную группу команд, если константа этапа компиляции с именем ConstantName не определена. Ниже описывается, каким образом группа команд включается в код на этапе компиляции при задании #IFNDEF. Если константа ConstantName не определена, на этапе компиляции включается группа команд, следующих за #IFNDEF и предшествующих директиве #ELSE или#ENDIF (той из них, которая встретится раньше). Если константа ConstantName определена и задана директива #ELSE, на этапе компиляции включается группа команд, следующих за #ELSE и предшествующих директиве #ENDIF. Если константа ConstantName определена и директива #ELSE не задана, ни одна из команд, находящихся внутри структуры #IFDEF ... #ENDIF, не включается на этапе компиляции. ConstantNameЗадает константу этапа компиляции, существование которой определяет необходимость включения группы команд на этапе компиляции. Константы этапа компиляции определяются с помощью директивы #DEFINE.
Commands
Задают группу команд, включаемых на этапе компиляции.
Комментарии
Структуру #IFDEF | #IFNDEF ... #ENDIF можно вкладывать в другую структуру #IFDEF | #IFNDEF ... #ENDIF. Комментарии можно располагать в одной строке с директивами #IFDEF, #IFNDEF, #ELSE и #ENDIF. Комментарии игнорируются во время компиляции и выполнения программы.
Листинг 2.3 TIME.H (объявление класса TTIME в заголовочном файле)
1: //time.h-Объявление класса TTime
2:
//{$IfNDef Symbol}
//Код выполняемый если
//Symbol определён ...
{$Else}
//Код выполняем
// еслиSymbol не определёный //{$EndIf}
Ifndef TIME1_H
Define TIME1_H 1
// Предотвращение нескольких #include
5:
6: class Ttime {
7: private:
8: int month;
9: int day;
10: int year;
11: int hour;
12: int minute;
13: public:
14: void Display(void);
15: void GetTime(int &m, int &d, int &y, int &hr, int &min);
16: void SetTime(int m, int d, int y, int hr, int min);
17: char *GetSTime(void);
18: void ChangeTime(long minutes);
19: };
20:
Endif // _ _TIME1_H
Строки 3, 4 и 21 предохраняют заголовочный файл TIME1.H от включения его в один модуль более одного раза.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.