Bases de la programmation en C

Que fixe la norme du langage C au sujet de la taille du type int ?

  1. AElle est fixée à 32 bits quelle que soit l'implémentation
  2. BElle fixe seulement un minimum de 16 bits ; la taille réelle est choisie par l'implémentation
  3. CElle doit être égale à la largeur des adresses du processeur, soit 64 bits sur un processeur 64 bits
Afficher la réponse et l'explication

Réponse : B. Elle fixe seulement un minimum de 16 bits ; la taille réelle est choisie par l'implémentation

La norme du C exige seulement qu'un int puisse représenter au moins −32767 à 32767 (soit 16 bits ou plus) ; la taille réelle est choisie par l'implémentation (la combinaison du compilateur et du processeur cible). Avec un compilateur pour microcontrôleur 16 bits, int peut faire 16 bits, alors qu'il fait 32 bits sur la plupart des PC et des microcontrôleurs 32 bits. Même sous Linux et Windows 64 bits, int reste en général sur 32 bits, et ce sont les pointeurs qui passent à 64 bits. Lorsqu'un entier de taille déterminée est nécessaire, on utilise int32_t et les types semblables de stdint.h.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de la programmation en C

  1. Dans les programmes embarqués, une variable qui reçoit la valeur d'un registre de périphérique de 32 bits est souvent déclarée avec le type uint32_t de stdint.h plutôt qu'avec unsigned int. Quelle en est la raison principale ?
  2. Quelle est la sortie obtenue en exécutant le code ci-dessus, qui contient une division entre entiers ?
  3. Quelle est la sortie obtenue en exécutant le code ci-dessus, qui utilise ++ en préfixe et en suffixe ?
  4. Quelle est la sortie obtenue en exécutant le code ci-dessus, où = est écrit dans la condition d'une instruction if ?
  5. Le code ci-dessus a été écrit pour tester si le bit 2 de la valeur de registre reg vaut 1. Quel est le résultat de son exécution ?