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