Kengaytirilgan tiplar
Boshqa ma’lumot tiplari
Asosiy tiplardan (int, float, double, char) tashqari, C tilida sonning qanchalik katta bo‘lishi yoki manfiy bo‘la olishini boshqarish uchun kengaytirilgan kalit so‘zlar (short, long, unsigned) ham mavjud:
| Tip | Hajmi* | Diapazon (odatda) | Format spetsifikatori |
|---|---|---|---|
short int |
2 bayt | -32,768 dan 32,767 gacha | %hd |
unsigned int |
2 yoki 4 bayt | 0 dan 65,535 gacha (2 bayt) 0 dan 4,294,967,295 gacha (4 bayt) |
%u |
long int |
4 yoki 8 bayt | -2,147,483,648 dan 2,147,483,647 gacha (4 bayt) -9,223,372,036,854,775,808 dan 9,223,372,036,854,775,807 gacha (8 bayt) |
%ld |
long long int |
8 bayt | -9,223,372,036,854,775,808 dan 9,223,372,036,854,775,807 gacha | %lld |
unsigned long int |
4 yoki 8 bayt | 0 dan 4,294,967,295 gacha (4 bayt) 0 dan 18,446,744,073,709,551,615 gacha (8 bayt) |
%lu |
unsigned long long int |
8 bayt | 0 dan 18,446,744,073,709,551,615 gacha | %llu |
long double |
8, 12 yoki 16 bayt | Amalga oshirilishga (kompilyatorga) bog‘liq, lekin double tipidan aniqroq |
%Lf |
unsigned tip faqat manfiy bo‘lmagan qiymatlarni (0 va undan katta) saqlay olishini bildiradi.
*Eslatma: Bu tiplarning hajmi tizimdan tizimga farq qilishi mumkin (masalan, 2 yoki 4 bayt, yoxud 4 yoki 8 bayt). Bu kompyuterning eski yoki yangiligiga, 32 bitli yoki 64 bitli ekaniga hamda qaysi kompilyator ishlatilishiga bog‘liq.
Quyida bu kengaytirilgan tiplarni qanday yaratish va chop etish mumkinligiga misol keltirilgan:
Misol
int normalInt = 1000; // standard int
double normalDouble = 3.14; // standard double
short int small = -100; // smaller int
unsigned int count = 25; // only positive int
long int big = 1234567890; // larger int
long long int veryBig = 9223372036854775807; // very large int
unsigned long long int huge = 18446744073709551615U; // very large, only positive
long double precise = 3.141592653589793238L; // extended precision
printf("Normal int: %d\n", normalInt);
printf("Normal double: %lf\n", normalDouble);
printf("Small: %hd\n", small);
printf("Count: %u\n", count);
printf("Big: %ld\n", big);
printf("Very Big: %lld\n", veryBig);
printf("Huge: %llu\n", huge);
printf("Precise: %Lf\n", precise);
Eslatma: Bu kengaytirilgan tiplar asosan xotiradan foydalanish yoki son diapazonlarini juda aniq nazorat qilish kerak bo‘lganda ishlatiladi.
Eslatma: Kundalik dasturlash uchun odatda int, float, double va char tiplari yetarli.
Hajmni tekshirish
*Aniq hajmlar tizimingiz va kompilyatoringizga bog‘liq. Ularni sizeof operatori yordamida tekshirish mumkinligini yodda tuting:
Misol
printf("Size of int: %zu bytes\n", sizeof(int));
printf("Size of double: %zu bytes\n", sizeof(double));
printf("Size of short int: %zu bytes\n", sizeof(short int));
printf("Size of unsigned int: %zu bytes\n", sizeof(unsigned int));
printf("Size of long int: %zu bytes\n", sizeof(long int));
printf("Size of long long int: %zu bytes\n", sizeof(long long int));
printf("Size of unsigned long long int: %zu bytes\n", sizeof(unsigned long long int));
printf("Size of long double: %zu bytes\n", sizeof(long double));
Maslahat: Sonlaringiz hajmini haqiqatan ham aniq nazorat qilish kerak bo‘lsa, keyinroq o‘rganadigan qat’iy o‘lchamli tiplardan foydalanishingiz mumkin.
Eslatma: Bu sahifa faqat C tilida boshqa kengaytirilgan tiplar ham borligini ko‘rsatish uchun mo‘ljallangan. Hozircha ushbu darslikda asosiy tiplarga e’tibor qaratishda davom etamiz (int, float, double, char).
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
