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;
}