У мові програмування 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.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U movi programuvannya C ponyattya tipiv danih vidnosyat do velikoyi sistemi ogoloshennya zminnih riznih tipiv Sama mova nadaye bazovi arifmetichni tipi a takozh sintaksis dlya stvorennya masiviv Koncepciya tipu danihGolovna meta bud yakoyi programi polyagaye v obrobci danih Dani riznogo tipu zberigayutsya j obroblyayutsya po riznomu U bud yakij algoritmichnij movi kozhna konstanta zminna rezultat obchislennya virazu abo funkciyi povinni mati pevnij tip Tip danih viznachaye vnutrishnye predstavlennya danih v pam yati komp yutera oblast znachen yaki mozhut prijmati velichini cogo tipu operaciyi ta funkciyi yaki mozhna zastosovuvati do velichin cogo tipu Vihodyachi z cih harakteristik programist vibiraye tip kozhnoyi velichini vikoristovuvanoyi v programi dlya podannya realnih ob yektiv Obov yazkovij opis tipu dozvolyaye kompilyatoru provoditi perevirku dopustimosti riznih konstrukcij programi Vid tipu velichini zalezhat mashinni komandi yaki budut vikoristovuvatisya dlya obrobki danih Vsi tipi movi C mozhna rozdiliti na osnovni j skladovi U movi C viznacheno shist osnovnih tipiv danih dlya predstavlennya cilih dijsnih simvolnih i logichnih velichin Na osnovi cih tipiv programist mozhe vvoditi opis skladovih tipiv Do nih nalezhat masivi pererahuvannya funkciyi strukturi posilannya viznachniki ob yednannya i klasi Osnovni tipi danih chasto nazivayut arifmetichnimi tomu sho yih mozhna vikoristovuvati v arifmetichnih operaciyah Dlya opisu osnovnih tipiv movi C vikoristovuyut taki sluzhbovi slova int cilij char simvolnij bool logichnij float dijsnij double dijsnij z podvijnoyu tochnistyu void porozhnij ne maye znachennya shortBazovi tipiKozhna zminna maye pevnij tip I cej tip viznachaye yaki znachennya mozhe mati zminna yaki operaciyi z neyu mozhna robiti ta skilki bajt v pam yati vona bude zajmati Tipi danih U movi C viznacheni taki bazovi tipi danih bool logichnij tip Mozhe prijmati odnu z dvoh znachen true istina i false brehnya Kilkist pam yati dlya cogo tipu tochno ne viznachena char predstavlyaye odin simvol v koduvanni ASCII signed char i unsigned char predstavlyaye odin simvol wchar t predstavlyaye rozshirenij simvol char16 t i char32 t predstavlyaye odin simvol v koduvanni Unicode int predstavlyaye cile chislo short i unsigned short takozh predstavlyayut cile chislo unsigned int predstavlyaye pozitivne cile chislo long long long i unsigned long long takozh predstavlyayut cile chislo float double i long double predstavlyayut dijsne chislo ordinarnoyi tochnosti z ruhomoyu komoyu void tip bez znachennya Simvolni tipi Dlya predstavlennya simvoliv v dodatku vikoristovuyutsya tipi char wchar t char16 t i char32 t Cilochiselni tipi Cilochiselni tipi predstavleni takimi tipami short unsigned short int unsigned int long unsigned long long long i unsigned long long Tipi chisel z ruhomoyu komoyu Tipi chisel z ruhomoyu komoyu ta drobovi chisla predstavleni takimi tipami yak float double i long double Utochnennya diapazonu znachen Dlya utochnennya vnutrishnogo podannya ta diapazonu znachen standartnih tipiv mova C vikoristovuye chotiri specifikatori tipu short korotkij long dovgij signed znakovij unsigned bezznakovij Rozmiri tipiv danihU tablici dlya kozhnogo tipu vkazano rozmir yakij vin zajmaye v pam yati Odnak varto zaznachiti sho granichni rozmiri dlya tipiv rozrobniki kompilyatoriv mozhut vibirati samostijno vihodyachi z aparatnih mozhlivostej komp yutera Standart vstanovlyuye lishe minimalni znachennya yaki povinni buti Napriklad dlya tipiv int i short minimalne znachennya 16 bit dlya tipu long 32 biti Pri comu rozmir tipu long povinen buti ne menshe rozmiru tipu int a rozmir tipu int ne menshij za rozmir tipu short a rozmir tipu long double povinen buti bilshij za double Navit v ramkah odniyeyi platformi rizni kompilyatori mozhut po riznomu pidhoditi do rozmiriv deyakih tipiv danih Ale v cilomu vikoristovuyutsya ti rozmiri yaki vkazani v tablici podanij nizhche Tip Rozmir bajt Znachennyabool 1 true abo falseunsigned short int 2 vid 0 do 65 535short int 2 vid 32 768 do 32 767unsigned long int 4 vid 0 do 4 294 967 295long int 4 vid 2 147 483 648 do 2 147 483 647int 16 rozryadiv 2 vid 32 768 do 32 767int 32 rozryadi 4 vid 2 147 483 648 do 2 147 483 647unsigned int 16 rozryadiv 2 vid 0 do 65 535unsigned int 32 rozryadi 4 vid 0 do 4 294 967 295char 1 vid 0 do 255float 4 vid 1 2e 38 do 3 4e38double 8 vid 2 2e 308 do 1 8e308long double 10 vid 3 4e 4932 do 3 4e 4932Specifikator autoInodi buvaye vazhko viznachiti tip virazu I zgidno z ostannimi standartami mozhna nadati kompilyatoru samomu vivoditi tip ob yekta I dlya cogo zastosovuyetsya specifikator auto Pri comu yaksho mi viznachayemo zminnu zi specifikatorom auto cya zminna povinna buti obov yazkovo inicializovana bud yakim znachennyam Kontrol tipivKontrol tipiv maye zabezpechuvatisya rozrobnikom programi Osnovnoyu perevagoyu potokiv C ye avtomatichnij kontrol tipiv PosilannyaISO IEC 9899 1999 Programming languages C Iso org 8 grudnya 2011