Je sais que les modèles de données suivants existent:Linux Modèle de données et les types primitifs taille
- 32 bits * nix: ILP32
- 32 bits de Windows: ILP32
- 32 bits OS X : ILP32
- 64 bits * nix: LP64
- 64 bits Windows: LLP64
- 64 bits OS X: LP64
http://www.unix.org/whitepapers/64bit.html
La version 64 bits du noyau Linux utilise le modèle de données LP64 (http://www.unix.org/version2/whatsnew/lp64_wp.html).
MISE À JOUR
C++ 03 standard 5.3.3 $/1
sizeof (char), sizeof (char signé) et sizeof (unsigned char) sont 1; le résultat de sizeof appliqué à tout autre type fondamental (3.9.1) est défini par l'implémentation. [Note: en particulier, sizeof (bool) et sizeof (wchar_t) sont l'implémentation defined.69)
La vraie question est: le compilateur (gcc) prendre en compte le modèle de données choisi par l'OS (linux par exemple)?
Qu'en est-il du compilateur utilisé pour compiler le système d'exploitation? –
Ron, les deux langues ne définissent pas la taille du type primitif. La question est valable et je sais que ce sont deux langues différentes. Le point ici est entre le système d'exploitation (modèle de données choisi) et les compilateurs. – Kasper
@Ron: non! La norme C et C++ ne définit pas la taille du type primitif! exception pour char, float et double. – Kasper