Инструкции

Справочный раздел

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

Разделы инструкций

В сети

Пользователей: 191
Из них просматривают:
Аналоги: 99. Видео: 1. Даташиты: 26. Инструкции: 28. Новости: 7. Остальное: 3. Партнёры: 1. Производители: 1. Профиль пользователя: 10. Расчёты: 4. Форум: 11.
Участников: 2
Гостей: 189

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.
Оглавление

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

Группа директив препроцессора, позволяющих в зависимости от значения определенных символов (макросов) изменять содержимое текста программы: #if, #ifdef, #ifndef, #else, #elif и #endif. Эти директивы сложные, т.е. состоят из более чем одной строки. Начинаются всегда с одной из первых трех директив, завершаются всегда директивой #endif. Оставшиеся директивы #else и #elif -дополнительные, могут и отсутствовать.

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

 

#if (VER > 5)

//строки, которые будут обработаны только в случае, если VER > 5

int x = 10;

#endif

 

В примере строка int x = 10 будет включена в текст программы только в том случае, если значение ранее описанного символа VER будет больше 5. Если же символ VER не определен вообще, или его значение менее 5 - строка будет удалена препроцессором.

 

#if (VER > 5)

int x = 10;

#else long x = 10;

#endif

 

В этом примере в текст программы будет введено определение переменной int x только для случаев, когда VER > 5, а в противном переменная х будет иметь тип long.

 

#if (VER > 5)

int x = 10;

#elif (VER > 3)

char x = 10;

#else long x = 10;

#endif

  
Этот пример показывает, как изменяется тип переменной х в зависимости от значения VER:

 

Значение VERТип переменной х
6 и болееint
4 или 5char
3 и менееlong


Количество директив #elif может быть любым.

 
Если не требуется анализировать значение символа, а достаточно лишь убедиться в том, что он определен, используется такой вариант:

 

#ifdef VER

int x = 10;

#endif

 

Если символ VER определен «выше по тексту» программы -определение переменной включается в текст программы, иначе -исключается.

 
Директива #ifndef позволяет что-то включить в текст программы, если символ НЕ описан ранее. Обе директивы могут содержать блок #else для указания альтернативного включения текста.

 
Не нужды упоминать, что указанные директивы могут «охватывать» любое количество строк программы, в том числе любые другие директивы препроцессора. Главное, о чем нельзя забывать: директивы препроцессора не могут использоваться для контроля содержимого переменных! То есть определить, существует или нет переменная var при помощи директивы #ifdef var можно, но будет ошибочной попытка проверить ее значение директивой #if var == 15.

 

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

Разное

Интересно

При пайке деталей над горловиной кинескопа накройте ее куском материи.
Этим Вы убережёте кинескоп от случайно падающего расплавленного припоя и, следовательно, от трещин в его стекле.