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