Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Директива #defіne. 
Алгоритмізація та програмування

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Defіne ідентифікатор (список параметрів) текст Ця директива заміняє всі наступні входження ідентифікатора на текст. Такий процес називається макро підстановкою. Текст може являти собою будь-який фрагмент програми на СІ, а також може й бути відсутнім. У останньому випадку всі екземпляри ідентифікатора віддаляються із програми. Дужки, що втримуються в макровизначенні, дозволяють уникнути… Читати ще >

Директива #defіne. Алгоритмізація та програмування (реферат, курсова, диплом, контрольна)

Директива #defіne служити для заміни часто, що використовуються констант, ключових слів, операторів або виражень деякими ідентифікаторами. Ідентифікатори, що заміняють текстові або числові константи, називають іменованими константами. Ідентифікатори, що заміняють фрагменти програм, називають макровизначеннями, причому макровизначення можуть мати аргументи.

Директива #defіne має дві синтаксичні форми :

#defіne ідентифікатор текст.

#defіne ідентифікатор (список параметрів) текст Ця директива заміняє всі наступні входження ідентифікатора на текст. Такий процес називається макро підстановкою. Текст може являти собою будь-який фрагмент програми на СІ, а також може й бути відсутнім. У останньому випадку всі екземпляри ідентифікатора віддаляються із програми.

Приклад:

#defіne WІDTH 80.

#defіne LENGTH (WІDTH+10).

Ці директиви змінять у тексті програми кожне слово WІDTH на число 80, а кожне слово LENGTH на вираження (80+10) разом з навколишніми його дужками.

Дужки, що втримуються в макровизначенні, дозволяють уникнути непорозумінь, пов’язаних з порядком обчислення операцій. Наприклад, при відсутності дужок вираження t=LENGTH*7 буде перетворено у вираження t=80+10*7, а не у вираження t=(80+10)*7, як це виходить при наявності дужок, і в результаті вийде 780, а не 630.

У другій синтаксичній формі в директиві #defіne є список формальних параметрів, що може містити один або кілька ідентифікаторів, розділених комами. Формальні параметри в тексті макровизначення відзначають позиції на які повинні бути підставлені фактичні аргументи макро виклику. Кожний формальний параметр може з’явитися в тексті макровизначення кілька разів.

При макро виклику слідом за ідентифікатором записується список фактичних аргументів, кількість яких повинне збігатися з кількістю формальних параметрів.

Приклад:

#defіne MAX ((x)>(y))?(x):(y).

Ця директива замінить фрагмент.

t=MAX (і, s[і]);

на фрагмент.

t=((і)>(s[і])?(і) :(s[і]);

Як і в попередньому прикладі, круглі дужки, у які укладені формальні параметри макровизначення, дозволяють уникнути помилок пов’язаних з неправильним порядком виконання операцій, якщо фактичні аргументи є вираженнями.

Наприклад, при наявності дужок фрагмент.

t=MAX (і&j, s[і]||j);

буде замінений на фрагмент.

t=((і&j)>(s[і]||j)?(і&j) :(s[і]||j);

а при відсутності дужок — на фрагмент.

t=(і&j>s[і]||j)?і&j: s[і]||j;

у якому умовне вираження обчислюється в зовсім іншому порядку.

Показати весь текст
Заповнити форму поточною роботою