Identifiants en langage C où sont-ils stockés

Juste intéressé. Je révise ma connaissance rouillée oubliée de C depuis longtemps et je me demande en C où sont stockés les identificateurs des variables déclarées.

Par exemple, si je déclare le caractère suivant value1 dans main.

int main(){ char value1 = 'A'; return 0; } 

Je sais que le caractère sera stocké dans la stack dans le cadre de stack pour main. Disons que si nous faisons une adresse sur valeur1 comme ceci & valeur1. Nous obtiendrions quelque chose comme 0xF37012 (un nombre hypothétique). Ce serait l’endroit où se trouve la valeur, mais qu’en est-il de l’identifiant? et comment est-ce associé à 0xF37012? Est-il dans la stack frane pour principal quelque part? Ou est-ce que tous les identifiants sont stockés dans une table ou une liste globale?

Sauf si vous avez compilé spécifiquement pour le débogage, les identifiants ne sont PAS stockés. Si vous avez défini l’option de débogage lors de la compilation, des tables de symboles associées aux fonctions / emstackments / au stockage statique fournissent ces mappages.

certains identifiants seront optimisés lors de la compilation, sauf si les informations de débogage sont générées.