русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Условная компиляция.

Существует несколько директив условной компиляции, позволяющих изменить порядок компиляции в зависимости от состояния системы. Данный процесс называется условной компиляцией и широко используется при разработке коммерческого программного обеспечения, предоставляющего и поддерживающего много различных версий одной и той же программы.

Условная компиляция – это выборочная компиляция только тех частей программы, которые удовлетворяют некоторым условиям. Например, могут быть откомпилированы только те части программы, которые относятся к определённому окружению. Условная компиляция имеет следующие преимущества:

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

Приводит к эффективному использованию памяти, так как ненужный код не хранится в памяти во время выполнения.

Решение о включении той или иной части программы принимается на этапе компиляции, а не во время выполнения. Это повышает эффективность программы (но уменьшает её гибкость).

Для условной компиляции используется препроцессорная директива #if. Она имеет 2 формы:

1.без else части.

заголовок_ if

оператор1

#endif

2.с else частью

заголовок_if

оператор1

#else

оператор2

#endif

где #endif используется для обозначения конца блока if

Здесь заголовок_if содержит условие в зависимости от значения, которое выполняется оператор1 или оператор2. Оператор1 выполняется если условие в заголовке_if истинно, оператор2 если ложно.

Заголовок_if имеет 3 формы:

#if константное выражение.

Если константное выражение отличается от 0, условие истинно, если равно 0, условие ложно.

#ifdef.

Условие истинно, если идентификатор предварительно был определён с помощью директивы #define (и не было для него директивы #undef). В противном случае ложно.

#ifndef

Условие истинно, если идентификатор не был определён ранее с помощью директивы #define (или был определён, а затем к нему была применена директива #undef).

Пример. Условная компиляция.

#ifndef SIZE

#define SIZE 128

#endif

В результате переменная SIZE получает значение, если ранее она не была определена программистом.

Рекомендации по программированию.

При использовании вложенных директив условной компиляции многие компиляторы не допускают смещения вправо #if и #else. Они все должны начинаться с первой позиции.

Пример.

#ifndef MAX

оператор

#else

#if MAX= =100

оператор

#else

оператор

#endif

#endif

Пример демонстрации условной компиляции, определяется символический идентификатор RAZM_BUF в зависимости от значения переменных A,B,C.

#if A

#define RAZM_BUF 4096

#endif

#if B

#define RAZM_BUF 1024

#endif

#if C

#define RAZM_BUF 512

#endif

2.7.6.Директива #elif.

#elif означает иначе, если. Используется для построения if-else-if с целью определения различных опций компиляции.

За #elif следует константное выражение. Если оно истинно, то блок кода компилируется, и остальные выражения не проверяются, в противном случае рассматривается следующий блок.

Формат #elif

#if выражение

Просмотров: 1373


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.