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