Les variables déclarées à l'extérieur d'un bloc-procédure et d'un bloc-fonction sont appelées variables globales. Leur espace-mémoire nécessaire est alloué dans le segment de données [angl. data segment]. Les variables déclarées à l'intérieur d'une procédure et d'une fonction sont appelées variables locales. Les variables locales sont stockées sur la pile d'exécution [angl. stack segment].
A la fin de la compilation, au moment où l'éditeur de liens [angl. linker] entre en action, les variables globales du programme principal, ainsi que celles de toutes les interfaces [angl. units] utilisées par le programme, sont stockées dans le segment de données. Il faut noter qu'en Turbo-Pascal, la capacité du segment de données est limitée à 65520 Bytes. Ainsi, si l'espace-mémoire nécessaire pour stocker les données globales est supérieur à ce maximum, il est conseillé d'allouer de façon dynamique les structures à taille élevée. L'allocation dynamique de l'espace-mémoire se fait sur le tas [angl. heap].
La taille de la pile peut varier entre 1024 et 65520 Bytes. Chaque fois qu'une procédure ou fonction est activée, l'espace-mémoire nécessaire pour stocker les variables locales est alloué sur la pile. Si la procédure ou fonction est désactivée, cet espace-mémoire est libéré.
En Turbo-Pascal il est possible de déclarer des variables absolues [angl. absolute variables]. Une variable absolue est une variable dont l'adresse a été spécifiée explicitement. La déclaration d'une telle variable doit être complétée par la clause ABSOLUTE.
TERMES TECHNIQUES
clause ABSOLUTE
segment de données
pile d'exécution
tas
variable absolue
variable globale
variable locale
© Aflo Informatique , 2003-2004