Types
élémentaires
|
void |
|
vide
|
unsigned/
signed
|
char
|
'0' 'a'
|
caractère
|
short int
|
12
12u, 12U
-12
014
0xc
|
entier
|
int
|
long int
|
12l, 12L
12ul
-12l
|
|
float
|
3.14f
|
réel
|
double
|
3.14,
31.4e-1, 31.4E-1
|
long
double
|
3.14L
|
Vecteur
int valeurs[10];
int t[] = {1, 2, 3};
char s[] = "Bonjour";
Pointeur
int * pi = &i;
int (* f)(int) = fact;
int * t = {1, 2, 3};
char * s2 = "Bonjour";
Regroupement hétérogène
struct personne {
int age;
char * nom;
};
...
struct personne dupont;
...
dupont.age = 22;
dupont.nom = "Dupont";
Enumération
enum booleen {faux = 0, vrai = 1};
Union
union int_char {
char
cc[sizeof(int)];
int i;
};
Taille et limites
La fonction sizeof permet
de connaître la taille en octet d'un
type.
Les valeurs limites des types élémentaires sont
données par
les fichiers d'entête standard limits.h et float.h
Le programme issu de test_types.c affiche le
résultat suivant sur un PowerPC G4 sous Mac OS X :
Tailles
sizeof(char) = 1
sizeof(short int) = 2
sizeof(int) = 4
sizeof(long int) = 4
sizeof(float) = 4
sizeof(double) = 8
sizeof(long double) = 8
sizeof(void *) = 4
sizeof(int *) = 4
sizeof(float *) = 4
sizeof(struct{int, char *}) = 8
sizeof(struct{int, char *} *) = 4
Limites
CHAR_MIN = -128, CHAR_MAX = 127,
UCHAR_MAX = 255
SHRT_MIN = -32768, SHRT_MAX =
32767, USHRT_MAX = 65535
INT_MIN = -2147483648, INT_MAX =
2147483647, UINT_MAX = 4294967295
LONG_MIN = -2147483648, LONG_MAX
= 2147483647, ULONG_MAX = 4294967295
FLT_MIN = 0.000000 =
1.175494e-38, FLT_MAX = 340282346638528859811704183484516925440.000000
= 3.402823e+38
FLT_MANT_DIG = 24, FLT_MAX_EXP =
128
DBL_MIN = 0.000000 =
2.225074e-308, DBL_MAX =
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
= 1.797693e+308
DBL_MANT_DIG = 53, DBL_MAX_EXP =
1024