Junior
bool, char, short, int, long long, float və double kimi məlumat tipləri nə qədər yaddaş tutur?
sobes.tech Süni İntellekt
AI-dan cavab
C və C++ dillərində daxili məlumat tiplərinin ölçüsü standart tərəfindən sərt şəkildə müəyyən edilməmişdir, sizeof(char) istisna olmaqla, bu həmişə 1-ə bərabərdir. Digər ölçülər prosessor arxitekturasına və tərtibçiyə görə dəyişə bilər. Ancaq, əksər müasir sistemlərdə (məsələn, x86-64) minimal təmin olunan diapazonlar və tipik ölçülər mövcuddur:
| Tip məlumat | Minimal diapazon (C/C++) | Adi ölçü (bayt) |
|---|---|---|
bool |
Standart tərəfindən açıq şəkildə müəyyən edilməyib | 1 |
char |
Bir baytdan ibarət (>= 8 bit) | 1 |
short |
>= [-32767, +32767] (>= 16 bit) | 2 |
int |
>= short (>= 16 bit) |
4 |
long long |
>= [-9223372036854775807, +9223372036854775807] (>= 64 bit) | 8 |
float |
Yüngül dəqiqlik (adətən IEEE 754) | 4 |
double |
İkiqat dəqiqlik (adətən IEEE 754) | 8 |
Həqiqi ölçü sizeof operatoru ilə müəyyən edilə bilər:
#include <iostream>
int main() {
std::cout << "sizeof(bool): " << sizeof(bool) << " bayt" << std::endl;
std::cout << "sizeof(char): " << sizeof(char) << " bayt" << std::endl;
std::cout << "sizeof(short): " << sizeof(short) << " bayt" << std::endl;
std::cout << "sizeof(int): " << sizeof(int) << " bayt" << std::endl;
std::cout << "sizeof(long long): " << sizeof(long long) << " bayt" << std::endl;
std::cout << "sizeof(float): " << sizeof(float) << " bayt" << std::endl;
std::cout << "sizeof(double): " << sizeof(double) << " bayt" << std::endl;
return 0;
}