Типи даних мови C

(Перенаправлено з Типи даних в C++)

У мові програмування C поняття типів даних відносять до великої системи оголошення змінних різних типів. Сама мова надає базові арифметичні типи, а також синтаксис для створення масивів.

Концепція типу даних ред.

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

Тип даних визначає:

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

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

Всі типи мови C можна розділити на основні й складові. У мові C визначено шість основних типів даних для представлення цілих, дійсних, символьних і логічних величин. На основі цих типів програміст може вводити опис складових типів. До них належать масиви, перерахування, функції, структури, посилання, визначники, об'єднання і класи.

Основні типи даних часто називають арифметичними, тому що їх можна використовувати в арифметичних операціях. Для опису основних типів мови C використовують такі службові слова:

  • int (цілий);
  • char (символьний);
  • bool (логічний);
  • float (дійсний);
  • double (дійсний з подвійною точністю);
  • void (порожній, не має значення).
  • short

Базові типи ред.

Кожна змінна має певний тип. І цей тип визначає, які значення може мати змінна, які операції з нею можна робити та скільки байт в пам'яті вона буде займати.

Типи даних ред.

У мові C визначені такі базові типи даних:

  • bool: логічний тип. Може приймати одну з двох значень true (істина) і false (брехня). Кількість пам'яті для цього типу точно не визначена.
  • char: представляє один символ в кодуванні ASCII.
  • signed char і unsigned char: представляє один символ.
  • wchar_t: представляє розширений символ.
  • char16_t і char32_t: представляє один символ в кодуванні Unicode.
  • int: представляє ціле число.
  • short і unsigned short: також представляють ціле число.
  • unsigned int: представляє позитивне ціле число.
  • long, long long і unsigned long long: також представляють ціле число.
  • float, double і long double: представляють дійсне число ординарної точності з рухомою комою.
  • void: тип без значення.

Символьні типи ред.

Для представлення символів в додатку використовуються типи: char, wchar_t, char16_t і char32_t.

Цілочисельні типи ред.

Цілочисельні типи представлені такими типами: short, unsigned short, int, unsigned int, long, unsigned long, long long і unsigned long long.

Типи чисел з рухомою комою ред.

Типи чисел з рухомою комою та дробові числа представлені такими типами як float, double і long double.

Уточнення діапазону значень ред.

Для уточнення внутрішнього подання та діапазону значень стандартних типів мова C використовує чотири специфікатори типу:

  • short (короткий);
  • long (довгий);
  • signed (знаковий);
  • unsigned (беззнаковий).

Розміри типів даних ред.

У таблиці для кожного типу вказано розмір, який він займає в пам'яті. Однак варто зазначити, що граничні розміри для типів розробники компіляторів можуть вибирати самостійно, виходячи з апаратних можливостей комп'ютера. Стандарт встановлює лише мінімальні значення, які повинні бути. Наприклад, для типів int і short мінімальне значення - 16 біт, для типу long - 32 біти. При цьому розмір типу long повинен бути не менше розміру типу int, а розмір типу int - не менший за розмір типу short, а розмір типу long double повинен бути більший за double. Навіть в рамках однієї платформи різні компілятори можуть по різному підходити до розмірів деяких типів даних. Але в цілому використовуються ті розміри, які вказані в таблиці, поданій нижче.

Тип Розмір, байт Значення
bool 1 true або false
unsigned short int 2 від 0 до 65 535
short int 2 від -32 768 до 32 767
unsigned long int 4 від 0 до 4 294 967 295
long int 4 від -2 147 483 648 до 2 147 483 647
int (16 розрядів) 2 від -32 768 до 32 767
int (32 розряди) 4 від -2 147 483 648 до 2 147 483 647
unsigned int (16 розрядів) 2 від 0 до 65 535
unsigned int (32 розряди) 4 від 0 до 4 294 967 295
char 1 від 0 до 255
float 4 від 1.2е-38 до 3.4е38
double 8 від 2.2е-308 до 1.8е308
long double 10 від 3.4е-4932 до 3.4е+4932

Специфікатор auto ред.

Іноді буває важко визначити тип виразу. І згідно з останніми стандартами можна надати компілятору самому виводити тип об'єкта. І для цього застосовується специфікатор auto. При цьому, якщо ми визначаємо змінну зі специфікатором auto, ця змінна повинна бути обов'язково ініціалізована будь-яким значенням.

Контроль типів ред.

Контроль типів має забезпечуватися розробником програми. Основною перевагою потоків C є автоматичний контроль типів.

Посилання ред.

  • ISO/IEC 9899:1999 - Programming languages - C. Iso.org. 8 грудня 2011.