Здавалка
Главная | Обратная связь

Применение заголовочных файлов - не обязательный, но рекомендуемый способ улучшения организации частей программы.



Выполняет условное включение группы команд в код на этапе компиляции, если определена константа этапа компиляции.

Синтаксис

#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 Все права принадлежат авторам размещенных материалов.