ВУЗ:
Составители:
78
1) позволяет задавать параметры времени компиляции,
т.е. можно создавать программы различной конфигурации;
2) приводит к эффективному использованию памяти , так как
ненужный код не хранится в памяти во время выполнения ;
3) решение о включении той или иной части программы
принимается на этапе компиляции, а не во время выполнения . Это
повышает эффективность программы (но уменьшает ее гибкость ).
Для условной компиляции используется препроцессорная директива
#if. Она имеет две формы.
1) без else-части.
заголовок if
текст программы 1
#endif
2) с else-частью :
заголовок if
текст программы 1
#else
текст программы 2
#endif
Здесь заголовок1 содержит условие, в зависимости от значения
котором компилируется текст программы 1 или текст программы 2.
Заголовок_if имеет три формы.
1) #if константное_выражение
2) #ifdef идентификатор
3) #ifndef идентификатор
В первой форме условие определяется константным выражением .
Если константное выражение отличается от нуля, условие истинно ; если
равно нулю , условие ложно.
Во второй форме условие истинно , если идентификатор
предварительно был определен с помощью директивы #define (и не было
для него директивы #undef). В противном случае условие ложно.
В третьей форме условие истинно, если идентификатор не был
определен ранее с помощью директивы #define (или он был определен, а
затем к нему была применена директива #undef).
Пример условной компиляции:
78 1) позволяет задавать параметры времени компиляции, т.е. можно создавать программы различной конфигурации; 2) приводит к эффективному использованию памяти, так как ненужный код не хранится в памяти во время выполнения; 3) решение о включении той или иной части программы принимается на этапе компиляции, а не во время выполнения. Это повышает эффективность программы (но уменьшает ее гибкость). Для условной компиляции используется препроцессорная директива #if. Она имеет две формы. 1) без else-части. заголовок if текст программы 1 #endif 2) с else-частью: заголовок if текст программы 1 #else текст программы 2 #endif Здесь заголовок1 содержит условие, в зависимости от значения котором компилируется текст программы 1 или текст программы 2. Заголовок_if имеет три формы. 1) #if константное_выражение 2) #ifdef идентификатор 3) #ifndef идентификатор В первой форме условие определяется константным выражением. Если константное выражение отличается от нуля, условие истинно; если равно нулю, условие ложно. Во второй форме условие истинно, если идентификатор предварительно был определен с помощью директивы #define (и не было для него директивы #undef). В противном случае условие ложно. В третьей форме условие истинно, если идентификатор не был определен ранее с помощью директивы #define (или он был определен, а затем к нему была применена директива #undef). Пример условной компиляции: