русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

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


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Фрагмент програми ...


Дата додавання: 2014-11-28; переглядів: 868.


#endif

Тепер, якщо у початку програми макрос-ідентифікатор _MM_ визначено (за допомогою директиви #define), то фрагмент програми комплюватися буде, якщо ж ні, то позначений фрагмент програми при компіляції буде проігноровано.

 

Запобігання повторного включення h-файлу

У зв'язку з тим, що обробка директив включення #include часто призводить до неявних рекурсій, препроцесорна обробка програми може приводити до того, що в модифікований текст програми деякий h-файл буде включено більш, ніж один раз. Останнє призводить до дублювання визначень і, як результат, до помилок компіляції. Для того, щоб уникнути повторного включення h-файлів можна використати директиви умовної компіляції #ifndef і #endif у сполученні з директивою визначення простого макросу #define. Такий h-файл може бути влаштований у такий спосіб:

#ifndef MYFILE_H

#define MYFILE_H

текст h-файлу

#endif

 

Контроль параметрів компіляції

Borland C++ визначає ряд макросів, що дозволяють контролювати параметри компіляції, наприклад:

__LARGE__ - визначений, якщо встановлено модель пам'яті LARGE;

__FLAT__ - визначений, якщо встановлено режим побудови 32-бітної прикладної програми з моделлю пам'яті FLAT.

Більш детальну інформацію щодо застосування директив можна подивитись у [7].

 

 

Вправи

 

Вправа 1

Напишіть макрос-функції для піднесення наданого чисельного значення: а) у квадрат; б) у куб; в) у четверту степінь.

 

Вправа 2

Напишіть макрос-функцію для отримання дескриптору файлу, якого асоційовано з наданим потоком.

 

Вправа 3

Надана послідовність цілих чисел a1, a2, ... , an . Напишіть програму, яка знаходить найбільшу монотонно зростаючу підпослідовність. Підпослідовність розуміти як послідовність, яку можна отримати з наданої послідовності шляхом вилучення довільної кількості її елементів.

Оптимізацію виконуваного коду по часу його виконання задати шляхом запису у програмі відповідних ключів компіляції.

 

Вправа 4

Напишіть функцію numstr, яка підраховує кількість рядків у наданому текстовому файлі. Створіть окремий файл numstr.h і розташуйте у ньому свою функцію. Запишіть файл numstr.h таким чином, щоб зробити неможливим його повторне включення до головного файлу програми.

 

 


<== попередня лекція | наступна лекція ==>
Директиви препроцесора | Засоби використання асемблера


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн