Конспект лекций Часть II одесса, 2003


Директивы условной компиляции


Download 0.65 Mb.
Pdf ko'rish
bet16/26
Sana17.06.2023
Hajmi0.65 Mb.
#1526920
TuriКонспект
1   ...   12   13   14   15   16   17   18   19   ...   26
Bog'liq
atki188 c konspekt 2

Директивы условной компиляции 
Директивы условной компиляции #if, #ifdef и #ifndef применяются 
для того, чтобы исключить компиляцию отдельных частей программы. Это 
бывает полезно при отладке или, например, при поддержке нескольких вер-
сий программы для различных платформ. 
Формат директивы #if: 


Одесский колледж компьютерных технологий “СЕРВЕР” 
31
#if 
константное_выражение 
… 

#elif 
константное_выражение 
…] 
[#else 
…] 
#endif 
Количество директив #elif – произвольное. Исключаемые блоки кода могут 
содержать как описания, так и исполняемые операторы. Пример условного 
включения различных версий заголовочного файла: 
#if VERSION == 1 
#define 
INCFILE 
"vers1.h" 
#elif VERSION == 2 
#define 
INCFILE 
"vers2.h" 
/* 
и так далее */ 
#else 
#define 
INCFILE 
"versN.h" 
#endif 
#include 
INCFILE 
В константных выражениях может использоваться проверка, определена ли 
константа, с помощью defined(имя_константы). 
Другое назначение директивы – временно закомментировать фрагменты ко-
да, например: 
#if 

int i, j; 
double 
x,y; 
#endif 
Поскольку допускается вложенность директив, такой способ весьма удобен. 
Наиболее часто в программах используются директивы #ifdef и #ifndef, по-
зволяющие управлять компиляцией в зависимости от того, определён ли с 
помощью директивы #define указанный в них символ (хотя бы как пустая 
строка, например, #define 32_BIT_SUPPORT): 
#ifdef символ 
//Расположенный ниже код компилируется, если символ определён 
#ifndef символ 
//Расположенный ниже код компилируется, если символ не определён 
Действие этих директив распространяется до первого #elif, #else или #endif. 
Директива #ifndef часто применяется для того, чтобы обеспечить включение 
заголовочного файла только один раз: 
#ifndef HEADER_INCLUDED 
#include "myheader.h" 
#define HEADER_INCLUDED 
#endif 


Одесский колледж компьютерных технологий “СЕРВЕР” 
32

Download 0.65 Mb.

Do'stlaringiz bilan baham:
1   ...   12   13   14   15   16   17   18   19   ...   26




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling