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 ?
No answers yet.
Connectez-vous pour laisser une réponse