Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 1.17.1 Описи з модифікаторами - Програмування С, С++теорія та практика (частина 1) - Studbook

Програмування С, С++теорія та практика (частина 1)

1.17.1 Описи з модифікаторами

Використання в оголошеннях спеціальних ключових слів (модифікаторів) дозволяють надавати оголошенням спеціального змісту. Інформація, яку несуть в собі модифікатори, використовуються компілятором мови Сі в процесі генерування коду.

Розглянемо правила інтерпретації оголошень, що містять модифікатори соті, уоіаіііе, сіїесї, разсаї, пеаг, /аг, киде, іпіеггирі.

Модифікатори сіїесї, разсаї, іпіеггирі повинні розташовуватися безпосередньо перед ідентифікатором.

Модифікатори соті, уоїаііїе, пеаг, /аг, киде впливають або на ідентифікатор, або на ознаку покажчика (зірочку), що розташована безпосередньо справа від модифікатора. Якщо справа розташований ідентифікатор, то модифікується тип об’єкта, що іменується даним ідентифікатором. Якщо ж справа розташована зірочка, то ця зірочка представляє собою покажчик на модифікований тип. Таким чином, конструкція

модифікатор *

читається як „покажчик на модифікований тип”.

Наприклад,

іп£ сопз£ *р; /* покажчик на цілу константу */

іп£ *сопз£ р; /* константний покажчик на величину типу

іп£ */

Модифікатори типу соті і уоїаііїе можуть також розташовуватися і перед специфікацією типу.

В ТС використання модифікаторів пеаг, /аг, киде обмежене: вони можуть бути записані тільки перед ідентифікатором функції або перед ознакою покажчика (зірочкою).

Допускається більше одного модифікатора для одного об’єкта (або елемента оголошення). В наступному прикладі тип функції /ипс модифікується одночасно спеціальними ключовими словами /аг і разсаї. Порядок ключових слів неважливий, тобто комбінації /аг рахсаі і рахсаі/аг мають однаковий зміст. іп£ £аг * разса1 £аг £ипс();

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

Як і звичайно, в оголошенні можуть бути використані круглі дужки для зміни порядку його інтерпретації.

еИаг їаг * (їаг *деїіп{) (іпі їаг *);

і   І  \ Т І!  т

7             6          2  1        3     5        4

Рис. 1.23. Порядок інтерпретації складного оголошення з модифікаторами

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

1.

Ідентифікатор деґіпґ оголошений як

2.

покажчик на /аг

3.

функцію, що приймає

4.

один аргумент, який є покажчиком на /аг

5.

значення типу іпґ

6.

і повертає покажчик на /аг

7.

значення типу скаг

 

 

83