Sobes.tech
Junior

¿Cuánta memoria ocupan tipos de datos como bool, char, short, int, long long, float y double?

sobes.tech AI

Respuesta de la IA

El tamaño de los tipos de datos integrados en C y C++ no está estrictamente definido por el estándar, excepto sizeof(char), que siempre es igual a 1. Los demás tamaños pueden variar dependiendo de la arquitectura del procesador y del compilador. Sin embargo, existen rangos mínimos garantizados y tamaños típicos en la mayoría de los sistemas modernos (por ejemplo, x86-64):

Tipo de dato Rango mínimo (C/C++) Tamaño habitual (bytes)
bool No definido explícitamente por el estándar 1
char Basado en un byte (>= 8 bits) 1
short >= [-32767, +32767] (>= 16 bits) 2
int >= short (>= 16 bits) 4
long long >= [-9223372036854775807, +9223372036854775807] (>= 64 bits) 8
float Precisión simple (usualmente IEEE 754) 4
double Precisión doble (usualmente IEEE 754) 8

El tamaño real se puede determinar usando el operador sizeof:

#include <iostream>

int main() {
    std::cout << "sizeof(bool): " << sizeof(bool) << " bytes" << std::endl;
    std::cout << "sizeof(char): " << sizeof(char) << " bytes" << std::endl;
    std::cout << "sizeof(short): " << sizeof(short) << " bytes" << std::endl;
    std::cout << "sizeof(int): " << sizeof(int) << " bytes" << std::endl;
    std::cout << "sizeof(long long): " << sizeof(long long) << " bytes" << std::endl;
    std::cout << "sizeof(float): " << sizeof(float) << " bytes" << std::endl;
    std::cout << "sizeof(double): " << sizeof(double) << " bytes" << std::endl;
    return 0;
}