Les variables statiques sont un type unique de variable en C et C, qui sont stockées dans des segments spécifiques de fichiers exécutables pour éviter les noms collisions. Dans l'exemple de code fourni, bien qu'ils aient le même nom « foo » et « bar » dans des unités de traduction différentes, ils fonctionnent indépendamment avec leurs valeurs incrémentées. Cette indépendance soulève la question : où sont stockées ces variables statiques dans le fichier exécutable ?
Pour comprendre l'emplacement de stockage, il est crucial de se demander si les variables statiques sont initialisées à zéro. Si tel est le cas, ils sont généralement placés dans le segment ".BSS" (Block Started by Symbol). Ce segment stocke les données non initialisées qui sont définies sur zéro par défaut. Par exemple, "foo = 1;" serait stocké dans ".DATA".
Pendant ce temps, les variables statiques non initialisées à zéro sont placées dans le segment ".DATA". Ce segment contient des données initialisées, telles que "foo = 10;". La séparation en ces segments garantit l'absence de collisions de noms et permet une allocation efficace de la mémoire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!