Information

Author(s) Olivier Bonaventure
Deadline No deadline
Submission limit No limitation

Tags

Sign in

Conversion de types


Conversion de types

En C tout comme dans des langages comme Java, il est possible de convertir des nombres d'un type primitif vers un autre. Cependant, alors que le compilateur Java vérifie si la conversion est sans risque, le compilateur C ne fait aucune vérification et suppose que si le programmeur a effectué une conversion explicite entre types, il a pris ses précautions. Sur une architecture où les types de données sont stockés comme suit :

// char            1 octet(s)
// unsigned char        1 octet(s)
// short            2 octet(s)
// unsigned short        2 octet(s)
// int            4 octet(s)
// unsigned int        4 octet(s)
// long            4 octet(s)
// unsigned long        4 octet(s)


int i;
short s;
long l;
char c;
unsigned int ui;
unsigned char uc;
unsigned long ul;
unsigned short us;

Plusieurs fragments de code ci-dessous contiennent des conversions de type qui sont sans risque. Lesquels ?