Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Директиви умовної компіляції




Читайте также:
  1. Директиви ЄС про ергономічні вимоги

Директиви умовної компіляції #if, #ifdef та #ifndef застосовуються для того, щоб виключити компіляцію окремих частин програми. Це буває корисно при відладці або, наприклад, за підтримки декількох версій програми для різних платформ.

Формат директиви #if:

 

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

[ #elif константное_выражение

[ #elif константное_выражение

.]

 

[ #else

.]

#endif

Кількість директив #elif – довільне. Блоки коду, що виключаються, можуть містити як описи, так і виконувані оператори. Приклад умовного включення різних версій заголовного файлу:

 

#if VERSION == 1

#define INCFILE "versl.h"

#elif VERSION == 2

#define INCFILE "vers2.h" / * і так далі * /

#else

#define INCFILE "versN.h"

#endif

#include INCFILE

 

У константних виразах може використовуватися перевірка, чи визначена константа, за допомогою defined(имя_константы), наприклад:

 

#if defined(__BORLANDC___)& & ___BORLANDC_ == 0x530 // Вс5.3:

typedef istream_iterator <int.char.char__traits<char>.ptrdiff__t>

istream_iter;

#elif defined(_BORLAND___)/ / BC5.2:

typedef istream_iterator<int. ptrdiff__t> istream_iter:

#else // VC5.0:

typedef istream_iterator<int> istream_iter:

#endif

 

Інше призначення директиви – тимчасово закоментувати фрагменти коду, наприклад:

 

#if 0

int i, j ;

double x, у;

#endif

 

Оскільки допускається вкладеність директив, такий спосіб дуже зручний.

Найчастіше в програмах використовуються директиви #ifdef та #ifndef, що дозволяють управляти компіляцією залежно від того, чи визначений за допомогою директиви #definе вказаний в них символ (хоч би як порожній рядок, наприклад, #define 32_BIT_SUPPORT):

 

#ifdef символ

//Розташований нижче код компілюється,

//якщо символ визначений

#ifndef символ

//Розташований нижче код компілюється,

//якщо символ не визначений

 

Дія цих директив розповсюджується до першого #elif, #else або #endif.

Директива #ifndef часто застосовується для того, щоб забезпечити включення заголовного файлу тільки один раз:

 

#ifndef HEADER_INCLUDED

#include "myheader.h"

#define HEADER_INCLUDED

#endif

Контрольні питання

 

1. Що таке програма?

2. Опишіть процес створення програми.

3. Які стандартні типи даних є у мові C++?

4. Які відмінності існують між сучасним стандартом С++ та його попереднім стандартом?

5. Які типи констант ви знаєте?

6. Які директиви препроцесора ви знаєте?

7. Призначення директиви #include.

8. Призначення директиви #define.

9. Перелічите символи Escape-послідовності.

10. Яким чином можна перевизначити тип даних.

11. Яким чином можна задати 8-і та 16-і константи?

12. Рядкові та символьні константи.

13. Які ви знаєте засоби ініціалізації масиву символів (рядка)?

14. Розкрийте призначення ASCII-нуля ‘\0’?

 



Дата добавления: 2014-12-30; просмотров: 39; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2022 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты