2017-08-18 15 views
0

J'ai un doute très basique dans la liaison statique.Liaison statique relocalisée adresses

Supposons que nous ayons ce qui est appelé par A.

Supposons maintenant dans le code objet A est appelé à 100 fonction de l'emplacement B() 2 codes objet A et B. Le code objet B contient la fonction B(). Maintenant, la fonction B() sera directement placée à l'emplacement 100 ou sera-t-elle placée à un autre endroit dans le fichier de code objet final et résolue lors de la 2ème liaison (la fonction B() sera placée à l'emplacement 150) dans le code objet final et l'appel de fonction à B() sera résolu comme 150)?

Répondre

1

Lors de la liaison, l'éditeur de liens placera les fonctions de A et B à des emplacements appropriés en mémoire. Ensuite, il regardera l'instruction d'appel au 100ème emplacement de A et collera l'adresse de B() dans cette instruction.

+0

Donc, ce que j'ai dit dans la question était correct? – Zephyr

+0

@Zephyr Oui, la deuxième alternative dans votre question était correcte. – Johan