Cette question m'a été posée dans le cadre d'un examen final. Je suis un peu perplexe à ce sujet. (Ceci est compilé avec PuTTy dans un environnement Linux)
Question : Supposons que
foo.c
contient la définition globaleint secret = 4;
ybar.c
contient la définition globalechar secret[16];
Que se passera-t-il lorsquefoo.c
ybar.c
sont liés entre eux ? Quelle quantité de mémoire sera réservée auxsecret
?
Ma tentative : Je pense que, puisqu'il s'agit de définitions globales du même nom, elles sont toutes les deux fort et ne se compilera pas (c'est-à-dire qu'il y aura une erreur de l'éditeur de liens) parce qu'on ne peut pas avoir plusieurs variables fortes. Là où je suis confus, c'est la quantité de mémoire qui sera réellement réservée pour les secret
. C'est peut-être trivial, mais est-ce que ce serait (16 octets puisque char est 1 octet) + 4 octets pour l'entier, ce qui donnerait un total de 20 octets ?
Merci d'avance