Comme je suis nouveau dans le monde du c++ je me suis dit que d'aller jeter un coup d'œil au code source SFML serait un bon entraînement.
Et je suis tombé sur sa dans le fichier SFML/include/SFML/Config.hpp:
// 8 bits integer types
typedef signed char Int8;
typedef unsigned char Uint8;
// 16 bits integer types
typedef signed short Int16;
typedef unsigned short Uint16;
// 32 bits integer types
typedef signed int Int32;
typedef unsigned int Uint32;
// 64 bits integer types
#if defined(_MSC_VER)
typedef signed __int64 Int64;
typedef unsigned __int64 Uint64;
#else
typedef signed long long Int64;
typedef unsigned long long Uint64;
#endif
Il existe dans la librairie standard <cinttypes> depuis c++11 et pour le anciens standards <inttypes.h> qui ajoute des variables pour les entiers sur le nombre de bits que l'on veut.
Exemple:
#include <cinttypes> //depuis c++11
#include <inttypes.h> //pour anciens standards
int main(){
int8_t v1; //entier signé sur 8 bits
uint8_t v2;//entier non signé sur 8 bits
int16_t v3;//sur 16 bits
uint16_t v4;
int32_t v5;//sur 32 bits
uint32_t v6;
int64_t v7;//sur 64 bits
uint64_t v8;
}
Donc pourquoi ne pas utiliser <cinttypes> ?