Junior
Bool, char, short, int, long long, float ve double gibi veri tipleri ne kadar bellek kaplar?
sobes.tech yapay zeka
AI'dan gelen yanıt
C ve C++ dilinde gömülü veri tiplerinin boyutu, standart tarafından kesinlikle belirlenmemiştir, sizeof(char) hariç, bu her zaman 1'e eşittir. Diğer boyutlar, işlemci mimarisi ve derleyiciye bağlı olarak değişebilir. Ancak, çoğu modern sistemde (örneğin, x86-64) minimum garantili aralıklar ve tipik boyutlar vardır:
| Veri Tipi | Minimum Aralık (C/C++) | Yaygın Boyut (bayt) |
|---|---|---|
bool |
Standart tarafından açıkça tanımlanmamış | 1 |
char |
Bir bayt (>= 8 bit) | 1 |
short |
>= [-32767, +32767] (>= 16 bit) | 2 |
int |
>= short (>= 16 bit) |
4 |
long long |
>= [-9223372036854775807, +9223372036854775807] (>= 64 bit) | 8 |
float |
Tek hassasiyet (genellikle IEEE 754) | 4 |
double |
Çift hassasiyet (genellikle IEEE 754) | 8 |
Gerçek boyut, sizeof operatörü kullanılarak belirlenebilir:
#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;
}