Sobes.tech
Junior

bool, char, short, int, long long, float жана double сыяктуу маалыматтар түрлөрү канча жадты ээлейт?

sobes.tech AI

AIден жооп

C жана C++ тилдеринде киргизилген маалымат түрлөрүнүн өлчөмү стандарт тарабынан так аныкталган эмес, sizeof(char) исключени менен, ал дайыма 1ге барабар. Башка өлчөмдөр процессор архитектурасына жана компиляторго жараша өзгөрүшү мүмкүн. Бирок, минималдуу кепилденген диапазондар жана типтүү өлчөмдөр көпчүлүк заманбап системдерде (мисалы, x86-64) бар:

Маалымат түрү Минималдуу диапазон (C/C++) Типтүү өлчөм (байт)
bool Стандарт тарабынан так аныкталган эмес 1
char Бир байтка негизделген (>= 8 бит) 1
short >= [-32767, +32767] (>= 16 бит) 2
int >= short (>= 16 бит) 4
long long >= [-9223372036854775807, +9223372036854775807] (>= 64 бит) 8
float Биринчи даражадагы тактык (жалпысынан IEEE 754) 4
double Эки даражадагы тактык (жалпысынан IEEE 754) 8

Чын өлчөм sizeof оператору аркылуу аныкталышы мүмкүн:

#include <iostream>

int main() {
    std::cout << "sizeof(bool): " << sizeof(bool) << " байт" << std::endl;
    std::cout << "sizeof(char): " << sizeof(char) << " байт" << std::endl;
    std::cout << "sizeof(short): " << sizeof(short) << " байт" << std::endl;
    std::cout << "sizeof(int): " << sizeof(int) << " байт" << std::endl;
    std::cout << "sizeof(long long): " << sizeof(long long) << " байт" << std::endl;
    std::cout << "sizeof(float): " << sizeof(float) << " байт" << std::endl;
    std::cout << "sizeof(double): " << sizeof(double) << " байт" << std::endl;
    return 0;
}