Sobes.tech
Junior

Quelle est la taille mémoire de types de données tels que bool, char, short, int, long long, float et double?

sobes.tech IA

Réponse de l'IA

La taille des types de données intégrés en C et C++ n'est pas strictement définie par la norme, sauf sizeof(char), qui est toujours égal à 1. Les autres tailles peuvent varier en fonction de l'architecture du processeur et du compilateur. Cependant, il existe des plages minimales garanties et des tailles typiques sur la plupart des systèmes modernes (par exemple, x86-64):

Type de données Plage minimale (C/C++) Taille habituelle (octets)
bool Non défini explicitement par la norme 1
char Basé sur un octet (>= 8 bits) 1
short >= [-32767, +32767] (>= 16 bits) 2
int >= short (>= 16 bits) 4
long long >= [-9223372036854775807, +9223372036854775807] (>= 64 bits) 8
float Précision simple (habituellement IEEE 754) 4
double Précision double (habituellement IEEE 754) 8

La taille réelle peut être déterminée à l'aide de l'opérateur sizeof:

#include <iostream>

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