Éditeurs de liens, chargeurs et exécutables

Parmi les variables globales ci-dessus, quelle combinaison correspond à celles généralement placées dans la section .bss ?

int a = 5;
int b;
static int c = 0;
const int d = 7;
  1. Aa et b
  2. Bb et c
  3. Cc et d
Afficher la réponse et l'explication

Réponse : B. b et c

a a une valeur initiale non nulle et va dans .data ; b, sans valeur initiale, commence à 0 et va dans .bss ; c, initialisée à 0, n'a pas besoin que des 0 soient stockés dans le fichier et va aussi dans .bss. d, constante const, est placée dans .rodata, protégée en écriture. static détermine la visibilité depuis les autres fichiers ; la section est déterminée par la valeur initiale et const.

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

Autres questions sur Éditeurs de liens, chargeurs et exécutables

  1. Où est placée pendant l'exécution une variable locale (variable automatique) sans static déclarée dans une fonction C ?
  2. De quelle zone du processus provient généralement la mémoire allouée par malloc en C ?
  3. Quel est l'agencement mémoire correct d'un processus typique sous Linux notamment, des adresses basses aux adresses hautes ?
  4. Quel est l'avantage de l'agencement qui fait croître le tas et la pile d'un processus en sens opposés, avec un vaste espace libre entre eux ?
  5. Quelle description de l'édition de liens statique est correcte ?

Comparatifs sur ce thème