" y´a toujours moyen de faire un truc standard avec les types prédefinis par le compilo __int8, __int16, __int32 ( ainsi que __int64 mais pas supporté par tous les compilos) "
__intx ne sont pas standard. C´est une norme VC++ à la base qui peut avoir été adoptée par d´autres compilos.
La norme ISO C99 spécifie autre chose pour garder les entiers portables:
des typedefs prédéfinis dans le header stdint.h .
Il s´agit des types int8_t, int16_t, int32_t et int64_t, et de leurs versions non signées uint8_t, uint16_t, uint32_t et uint64_t.
Le problème, c´est que c,est pas tous els compilos non plus qui respectent la C99 à fond. Certains ne fourniront pas cet header par exemple, ou encore ne la fourniront pas par défaut.
Oh, et c´est un truc ( théoriquement) respecté et par le C et le C++.
LGV, tu offres une autre solution que je ne connaissait pas, et dont je me questionne sur sa normalité ( à entendre, s´il fait partie d´une norme) et sa portabilité inters-compilos. Et de plus il ne s´agit que de C++ ( Oui je sais, le topic précisait C++ et pas C/C++, donc il n´y a rien de déplacé dans tes propos, mais tout de même...). Tu peux nous donner plus de précisions?
Kelios
---------