Avatar ·

Que dit la norme C++ à propos de la taille des types int, long et long long ?

Bonjour à tous ! Je viens de commencer à apprendre le C++ et je suis confronté à une confusion. Je sais que sur différents compilateurs et plateformes, les tailles des types entiers peuvent varier. J'ai écrit un code simple pour vérifier cela sur ma machine (Windows, MinGW) : ```cpp #include using namespace std; int main() { cout << "Size of int: " << sizeof(int) << " bytes" << endl; cout << "Size of long: " << sizeof(long) << " bytes" << endl; cout << "Size of long long: " << sizeof(long long) << " bytes" << endl; return 0; } ``` Sur mon ordinateur, j'ai obtenu : int = 4 octets, long = 4 octets, long long = 8 octets. Mais sur Internet, j'ai lu que sur Linux x86_64, long peut être de 8 octets. Mon ami m'a dit que sur les anciens systèmes 16 bits, int faisait 2 octets. Ce qui m'intéresse : que garantit réellement la norme C++ ? Puis-je compter sur le fait que int fera toujours 4 octets ? Pourquoi long et int sont-ils identiques sur mon Windows mais différents sur Linux ? Et comment écrire du code portable si les tailles varient ?