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

К данным директивам относятся: #if, #else, #elif, #endif.

Данные директивы производят выборочную компиляцию программы. Если выражение, следующее за #if, истинно, то коды, заключенные между #if и #endif, будут компилироваться. В противном случае они при компиляции будут пропущены. Выражение, следующее за #if, проверяется во время компиляции, поэтому оно может содержать только константы и макросы, которые прежде определены. Переменные здесь не могут использоваться.

Директива #else используется так же, как и else в языке Си.

Пример: Использование условной компиляции.

# include <stdio.h>

# define MAX 100

main(void)

{

# if MAX>99

printf(“ MAX равно %d \n”, MAX);

# endif

return 0;

}

Директива #elif используется для организации вложенной условной компиляции. Форма использования ее следующая:

#if <выражение>

последовательность операторов

#elif <выражение 1>

последовательность операторов

#elif <выражение 2>

последовательность операторов

…………………………………..

# endif

Другой метод условной компиляции состоит в использовании директив #ifdef и #ifndef. Основная форма использования этих директив следующая:

#ifdef ИМЯ_МАКРОСА

последовательность операторов

# endif

и соответственно

#ifndef ИМЯ_МАКРОСА

последовательность операторов

# endif

Если макрос определен, то при использовании # ifdef компилируется соответствующая последовательность до операторов # endif. Если же макрос не определен или был отменен директивой #undef, то соответствующая последовательность операторов игнорируется компилятором. Директива #ifndef действует противоположным образом.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: