Main()//заголовок функції main

{

printf("hello, world\n");//функція виведення на екран

}

Описувачі

Фундаментальним поняттям при визначенні конструкцій мови є поняття описувача. Синтаксично описувач задається такою БНФ:

<описувач>::=

<ідентифікатор>|

<описувач>[ ]|

<описувач>[<константний вираз>]|

<описувач>()|

<описувач>(<список типів параметрів>)|

*<описувач>|

(<описувач>)

Разом із ключовим словом, що визначає тип даних, описувач дозволяє визначити будь-який об'єкт мови. Наприклад:

Int i;//описаний ідентифікатор і типу int

int i[3];//описаний масив із трьох елементів типу int

int *i;//описаний покажчик і на тип int

Int i();//описана функція і

Int i(int,int);//описана функція і, що повертає значення типу int і має два параметри типу int

Найпростіший варіант описувача – ідентифікатор.

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

typedef int masyv[10];

masyv f();

Функція не може повертати функцію.

Порядок інтерпретації складеного описувача:

a інтерпретація починається з ідентифікатора;

a інтерпретуються дужки, що стоять праворуч від ідентифікатора, тобто масив чи функція;

a інтерпретується *, що стоїть ліворуч. Наприклад:

double*(**i[5])(int)

Ідентифікатор "i" – це ім'я масиву із п'яти елементів – покажчиків на покажчик на функцію, яка має один аргумент типу int і повертає покажчик на тип double.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: