Espaces de noms
Variantes
Affichages
Actions

Types fondamentaux

De cppreference.com
< cpp‎ | language
 
 
Langage C++
Sujets généraux
Contrôle de flux
Instructions conditionnelles
Instructions d'itération
Instructions de saut
Fonctions
déclaration de fonction
expression lambda
fonction générique
spécificateur inline
spécification d'exception (obsolète)
spécificateur noexcept (C++11)
Exceptions
Espaces de noms
Types
types fondamentaux
classes
énumérations
spécificateur decltype (C++11)
Qualificatifs
qualificatifs const et volatile
qualificatifs de stockage
qualificatif constexpr (C++11)
qualificatif auto (C++11)
qualificatif alignas (C++11)
Initialisation
Littéraux
Expressions
opérateurs alternatifs
Utilitaires
Types
déclaration typedef
déclaration d'alias de type (C++11)
attributs (C++11)
Jette
Original:
Casts
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
conversions implicites
conversion const_cast
conversion static_cast
conversion dynamic_cast
conversion reinterpret_cast
conversions style C et style fonction
Allocation de mémoire
Classes
Qualificatifs spécifiques aux membres de classe
Fonctions membres spéciales
Modèles
classes génériques
fonctions génériques
spécialisation de modèles
paquets de paramètres (C++11)
Divers
Assembleur
 

(Voir aussi la liste des type utilitaires divers qui sont fournis par C++.)

Sommaire

[modifier] Type booléen

bool - type capable de contenir l'une des deux valeurs : vrai (true) ou faux (false).

[modifier] Types de caractères

signed char - type pour la représentation des caractères signés.
unsigned char - type pour la représentation des caractères non signés.
char - type représentant un caractère (équivalent à signed char ou unsigned char selon le système cible).
wchar_t - type représentant caractère large. (ex. UTF-8)
char16_t - type représentant un caractère UTF-16. (depuis C++11)
char32_t - type représentant un caractère UTF-32. (depuis C++11)

[modifier] Types entiers

int - type entier de base. Peut être omis si l'une des modificateurs suivants est présent. S'il n'y a pas de modificateur de longueur spécifié, le type est garanti d'être d'un grandeur d'au moins 16 bits. Par contre, sur un système 32 ou 64 bits, il est presque exclusivement garanti d'avoir une grandeur d'au moins 32 bits (voir plus bas).

[modifier] Modificateurs

Modifient le type entier. Peuvent être présentés dans n'importe quel ordre. Seulement un élément de chaque groupe peut être présent.

Signé/Non-signé

signed - le type cible aura une représentation signée. (Modificateur par défaut lorsque omis)
unsigned - le type cible aura une représentation non-signée.

Grandeur

short - Le type cible sera optimisé pour l'espace et aura une grandeur d'au moins 16 bits.
long - Le type cible aura une grandeur d'au moins 32 bits.
long long - Le type cible aura une grandeur d'au moins 64 bits. (depuis C++11)

[modifier] Propriétés

La tableau suivant résume tout les types entiers et leurs propriétés :

Déterminant du type Type équivalent Largeur (bits) en mémoire
C++ standard LP32 ILP32 LLP64 LP64
short
short int au moins
16
16 16 16 16
short int
signed short
signed short int
unsigned short
unsigned short int
unsigned short int
int
int au moins
16
16 32 32 32
signed
signed int
unsigned
unsigned int
unsigned int
long
long int au moins
32
32 32 32 64
long int
signed long
signed long int
unsigned long
unsigned long int
unsigned long int
long long
long long int
(C++11)
au moins
64
64 64 64 64
long long int
signed long long
signed long long int
unsigned long long
unsigned long long int
(C++11)
unsigned long long int

N.B.: le Standard C++ garantit la relation suivante : 1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long).

[modifier] Les modèles de données

Systèmes 32 bits :

  • LP32:
  • Win16 API
  • ILP32;
  • Win32 API
  • Unix and Unix-like systems (Linux, Mac OS X)

Systèmes 64 bits :

  • LLP64
  • Win64 API
  • LP64
  • Unix and Unix-like systems (Linux, Mac OS X)

[modifier] Types à virgules flottantes

float - type à virgule flottante à précision simple. Il s'agit habituellement du type IEEE-754 32 bits.
double - type à virgule flottante à précision double. Il s'agit habituellement du type IEEE-754 64 bits.
long double - type à virgule flottante à précision étendue. N'est pas nécessairement associé aux types déterminés par IEEE-754. Il s'agit habituellement du type à virgule flottante 80-bit x87 sur les architectures x86 et x86-64.

[modifier] Plage de valeurs

Le tableau suivant fournit une référence pour les limites des représentations numériques communes. Notez que tous les modèles de données populaires (Incluant ILP32, LP32, LP64 et LLP64) utilisent le complément à deux pour les représentation des entiers en mémoire. Aussi, le Standard C++ ne spécifie pas le type de représentation à utiliser, il garantie néanmoins la limite de la représentation complément à un.

Type Taille en bits Format Plage de valeurs
Approximate Exact
caractère 8 signé (complément à un) -127 to 127
signé (complément à deux) -128 to 127
non-signé 0 to 255
entier 16 signé (complément à un) ± 3.27 · 104 -32767 to 32767
signé (complément à deux) -32768 to 32767
non-signé 0 to 6.55 · 104 0 to 65535
32 signé (complément à un) ± 2.14 · 109 -2,147,483,647 to 2,147,483,647
signé (complément à deux) -2,147,483,648 to 2,147,483,647
non-signé 0 to 4.29 · 109 0 to 4,294,967,295
64 signé (complément à un) ± 9.22 · 1018 -9,223,372,036,854,775,807 to 9,223,372,036,854,775,807
signé (complément à deux) -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
non-signé 0 to 1.84 · 1019 0 to 18,446,744,073,709,551,615
floating
point
32 IEEE-754 ± 3.4 · 10± 38
(~ 7 chiffres)
  • min subnormal: ± 1.401,298,4 · 10-47
  • min normal: ± 1.175,494,3 · 10-38
  • max: ± 3.402,823,4 · 1038
64 IEEE-754 ± 1.7 · 10± 308
(~ 15 chiffres)
  • min subnormal: ± 4.940,656,458,412 · 10-324
  • min normal: ± 2.225,073,858,507,201,4 · 10-308
  • max: ± 1.797,693,134,862,315,7 · 10308

[modifier] Mots-clés

bool, true, false, char, wchar_t, char16_t, char32_t, int, short, long, signed, unsigned, float, double

[modifier] Voir aussi