« Exercices en langage C/Types » : différence entre les versions
Contenu supprimé Contenu ajouté
→Exercice 1 : longueurs en octet des types du langage C : parametres de main ignores |
→Exercice 1 : longueurs en octet des types du langage C : Portabilité : un char n'occupe pas focément 8 bits. |
||
Ligne 6 :
Vous utiliserez l'opérateur ''sizeof(type)''.
<div style="width:
'''Correction'''
<source lang="c">
/*
Nom : taille.c
Auteur : Thierry46
Role : affiche à l'écran la taille en octet des différents types de données
Paramètres : non pris en compte.
Code retour : 0 (EXIT_SUCCESS)
Pour produire un exécutable avec le compilateur libre GCC :
Pour exécuter, tapez : ./taille.exe
Version : 1.
Licence : GNU GPL
*/
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main(void)
{
/* Affiche les tailles récupérées avec sizeof() */
(void)printf("Taille des types en octet :\n"
sizeof(float)*CHAR_BIT/8, sizeof(double)*CHAR_BIT/8,
sizeof(long double)*CHAR_BIT/8);
return EXIT_SUCCESS;
}
Ligne 63 ⟶ 66 :
'''Remarques''' :
* L'opérateur <code>sizeof</code> renvoie un résultat de type '''size_t'''. L'unité du résultat est de type char. Un char ne mesure pas forcément un octet ou 8 bits sur toutes les architectures. C'est pourquoi, pourdes raisons de portabilité, j'utilise la constante CHAR_BIT qui indique le nombre de bits qu'occupe un char.
* Une valeur de ce type size_t s'imprime avec le spécificateur de format '''%zu''' de <code>printf</code>.
}} </div>
|