Opérateur sizeof
Mourad
-
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir ,
je me trouve en confusion lorsque j'ai fait l'execution de ce code en C
Resultat :
Success time: 0 memory: 2160 signal:0
4 1 4 4
Quelq'un peut t-il m'eclaircir le résulat et merci
je me trouve en confusion lorsque j'ai fait l'execution de ce code en C
double n=5.2;
char c=127;
printf("%d\t%d\t%d\t%d\t%d ",sizeof(!n),sizeof(c),sizeof(3*c),sizeof((int)c));
Resultat :
Success time: 0 memory: 2160 signal:0
4 1 4 4
Quelq'un peut t-il m'eclaircir le résulat et merci
un système 8 ou 16 bits => 2 octets
un système 32 bits => 4 octets
un système 64 bits => 8 octets (sauf pour Windows64 où il ne fait que 4 octets)
et un est la plus petite unité accessible d'au moins 1 octet :
=> 1 octet sur beaucoup de machines, sauf certains embarqués (par exemple TMS320) où il fait 2 octets.
et les autres types intégraux sont définis par l'inégalité :
Un char vaut 1 byte d'au moins 8 bits. Donc classiquement, un char est représenté sur 1 octet.
Le reste découle de l'inégalité.