Oddiy turlarning ichki tasvirlanishi va diapozonini aniqlash uchun to’rtta maxsus tur mavjud:
short (qisqa);
long (uzun);
signed (ishorali);
unsigned (ishorasiz).
Sonli turlarning xotiradagi hajmi
Sonli tur
Qiymati
O’lchami (bayt)
bool
true и false
1
signed char
-128 … 127
1
unsigned char
0 … 255
1
signed short int
-32 768 … 32 767
2
unsigned short int
0 … 65 535
2
signed long int
-2 147 483 648 … 2 147 483 647
4
unsigned long int
0 … 4 294 967 295
4
float
3.4e-38 … 3.4e+38
4
double
1.7e-308 … 1.7C+308
8
long double
3.4e-4932 … 3.4e+4932
10
Sonli turlarning xotiradagi hajmi
Foydalanuvchining standart turlari
Dasturlashda yangi nomdagi turlarni yaratish uchun typedef kalit so’zidan foydalaniladi, uning dasturdagi sintaksisi quyidagicha:
typedef yangi_tur_nomi [o’lchami];
bu yerda kvatrat qavs yangi nomdagi turni yaratishda qo’llaniladigan umumiy sintaksis elementi hisoblanadi. Tur o’lchami kiritilmasligi ham mumkin.
Foydalanuvchining standart turlari
Misollar
typedef unsigned int UINT; typedef char Msg[100]; typedef struct { char fio[30]; int date, code; double salary;} Worker;
xuddi shunday e’lon qilingan yangi turlardan, dasturlash jarayonida oddiy standart turlar kabi foydalanish mumkin bo’ladi:
UINT i, j ; // unsigned int turidagi ikkita o’zgaruvchiMsg str[10]; // 100 ta belgidan iborat 10 satrli massiv Worker staff[100]; // 100 ta strukturali massiv
Turlarning bunday shaklda tavsiflanishi, dasturlashda takrorlanishlarning oldini oladi. Ya’ni dastur matnida typedef yordamida e’lon qilingan yangi turga bog’liq o’zgaruvchilarga kiritiladigan o’zgarishlarni faqat ushbu operator blokida amalga oshirish yetarli hisoblanadi.
Foydalanuvchining standart turlari
Sanoqli tur (enum)
Dastur yozish vaqtida ba’zida bir nechta nomdagi konstanta (o’zgarmas) turlarni aniqlash talab qilinadi. Buning uchun sanoqli turdan foydalanish ancha qulaylik tug’diradi, bunda konstantalar qobul qiladigan qiymatlar butun sonli qiymatlar bo’lishi mumkin. Bunday sanoqli turni aniqlash (yaratish) sintaksisi – umumiy ko’rinishi quyidagicha:
enum [tur_nomi] {konstanta_ro’yxati};
dastur yozishda ushbu turga tegishli yangi o’zgaruvchini aniqlash zarur bo’lganda tur nomi kiritiladi. Ushbu turga tegishli o’zgaruvchilar konstantalar ro’yxatidagi qiymatlarni qabul qiladi. Konstantalar ro’yxat shaklida kiritilganligi uchun birinchi konstanta 0, qolganlari ketma-ket oldingisidan bir birlik katta qiymatga mos qo’yiladi.