Cours langage C++ les types de base et dérivés, tutoriel & guide de travaux pratiques en pdf.
Types de base
C++ implémente quelques types de base, dont les caractéristiques peuvent dépendre de l’implémentation sur une machine. Pour chaque implémentation, il est possible de connaître les détails par l’examen du fichier <limits.h>, qui spécifie l’implémentation utilisée. Un exemple d’un tel fichier est donnée çi-après. Il s’agit d’une implémentation pour un Macintosh basé sur un CPU de la famille 32 bit Motorola 680X0 (X > 2).
#define CHAR_BIT 8 #define MB_LEN_MAX 1
#define SCHAR_MIN (~127) #define SCHAR_MAX 127 #define UCHAR_MAX 255 #define CHAR_MIN (~127) #define CHAR_MAX 127
#define SHRT_MIN (~32767) #define SHRT_MAX 32767 #define USHRT_MAX 0xFFFF
#if __SC__ /* THINK C++ */
#define INT_MIN (~2147483647) #define INT_MAX 2147483647 #define UINT_MAX 0xFFFFFFFF
#else /* THINK C */
#if __option(int_4) #define INT_MIN (~2147483647) #define INT_MAX 2147483647 #define UINT_MAX 0xFFFFFFFF #else #define INT_MIN (~32767) #define INT_MAX 32767 #define UINT_MAX 0xFFFF #endif
#endif
#define LONG_MIN (~2147483647L) #define LONG_MAX 2147483647L #define ULONG_MAX 0xFFFFFFFFL
Ainsi, sur une machine 64 bit, certaines de ces définitions (par exemple INT_MAX) peuvent changer pour réfléter les possibilités étendues du CPU.
Type void
Le terme void signifie que l’identificateur correspondant n’a pas de type associé.
(void = rien). Le type void est un type important en C++; en particulier, il sert à définir une procédure, qui en C++ (par opposition à PASCAL, notamment) est une fonction qui ne retourne «rien».
Type short, int, long
Ces trois types définissent tous trois des entiers de taille pouvant différer selon les machines. Le langage (dans un souci d’efficacité relativement à la machine utilisée) ne spécifie pas la dimension de ces trois types, non plus que leurs dimensions relatives, si ce n’est par la relation
sizeof() est un opérateur C++ permettant de calculer la taille en bit d’une variable ou d’un type. On rencontre fréquemment, sur les machines 32 bit actuelles, les valeurs short = 16 bit, int = 32 bit, et long = 64 bit. Sans autre précision, short, int et long sont munis d’un signe. Il est possible, pour ces trois types de base, de spécifier unsigned short, unsigned int ou unsigned long.
Type float, double, long double
Ces trois types implémentent tous un type de variable réel en virgule flottante. Là encore, la précision de ces trois types n’est pas un objet de spécification du langage; il en va des nombres en virgule flottante comme des entiers. Les nombres réels non pourvus d’un signe (unsigned float, unsigned double, unsigned long double) ne sont pas implémentés.
Type char
Le type char est un cas particulier de nombres entiers. En ce sens, il est entièrement compatible avec le type int avec lequel il peut être converti de manière implicite. Le type char représente le jeu de caractères disponible sur le système considéré : USASCII sur un système d’exploitation de type MS-DOS ou UNIX, EBCDIC sur un système comme MVS ou RPG, etc…
Dans la très grande majorité des cas, une variable de type char occupe un byte (ou octet), soit 8 bits.Un type char peut être muni d’un signe ou non. Dans ce cas, il s’agit d’un signed char, ou d’un unsigned char. Par défaut, le type char est muni d’un signe, pour correspondre à l’implémentation des caractères USASCII à 7 bits, le huitième bit étant non significatif (de cette manière, le type char correspond à un type byte (non implémenté), qui serait un entier codé sur 8 bit).