вати псевдоніми для існуючих типів і нові типи. [7] Крім стандартних типів даних Паскаль підтримує скалярні типи, визначені самим користувачем. До них відносяться перечислимі типи (коли безпосередньо, в розділі опису типів, заздалегідь записуються всі значення для змінних цього типу) та інтервальні (коли задаються межі діапазону значень для даної змінної), вказівні типи (крім Pointer), структуровані типи і процедурні тіпи.Данние цих типів займають у пам'яті один байт, тому скалярні користувача типи не можуть містити більше 256 елементів. Їх застосування значно покращує наочність програми, робить більш легким пошук помилок, економить пам'ять. p align="justify"> Перечіслімий тип даних задається безпосередньо перерахуванням всіх значень, які може приймати змінна даного типу. При описі окремі значення вказуються через кому, а весь список полягає в круглі дужки. Інтервальний тип дозволяє задавати дві константи, що визначають межі діапазону значень для кожної змінної. Обидві константи повинні належати одному і тому ж стандартному типом (крім real). Вказівні типи - їх значеннями є адреси пам'яті. На відміну від стандартного вказівного типу Pointer, користувальницький тип визначає безліч значень, які вказують на динамічні змінні певного типу, званого базовим типом. Покажчик на який-небудь тип може бути описаний до оголошення самого типу. p align="justify"> Псевдонім в Паскалі створюється в спеціальному розділі перед тілом програми і після ключового слова TYPE. Для створення псевдоніма компілятору необхідно лише знати розмір, який займатиме новий тип в байтах. Тому можна створювати псевдоніми, що посилаються на покажчики і на масиви. У Сі для цих цілей використовується ключове слово typedef, яке викликається в будь досяжною точці програми і має час життя з моменту виклику і до завершення блоку, всередині якого стався виклик. Принцип дії аналогічний паскалевская. p align="justify"> У мові Сі існує п'ять способів створення користувацьких типів даних. Користувача типи даних можна створювати за допомогою:
В· структури - групи змінних, що має одне ім'я і званої агрегатним типом даних. Крім того, ще відомі терміни: з'єднання або конгломерат;
В· об'єднання, яке дозволяє визначати один і той же ділянку пам'яті як два і більше типів змінних;
В· бітового поля, яке є спеціальним типом елемента структури або об'єднання, що дозволяє легко отримувати доступ до окремих блоках;
В· перерахування - списку пойменованих цілих констант;
В· ключового слова typedef, яке визначає нове ім'я для існуючого типу;
У початковій реалізації Сі перелічуваних типів не було, їх додали пізніше. У Сі представником перераховується типу є...