BEGIN GLOBALS commande

Syntaxe :

BEGIN GLOBALS
  [instructions incluant des déclarations de variables]
END GLOBALS

Description :

Les commandes BEGIN GLOBALS et END GLOBALS indiquent, respectivement, le début et la fin d’une section de déclarations de variables globales. Une variable globale est une variable qui est “visible” de toutes les parties du programme : c’est-à-dire qu’elle maintient sa valeur à l’entrée et à la sortie des fonctions locales. En plaçant judicieusement des commandes BEGIN GLOBALS…END GLOBALS, vous pouvez également créer des variables qui seront considérées comme “globales” pour certaines fonctions locales mais pas pour d’autres.

BEGIN GLOBALS et END GLOBALS sont des commandes “non-exécutables”, si bien que vous ne pouvez pas changer leur effet en les plaçant dans des structures d’exécution conditionnelle telles que LONG IF…END IF. Cependant, vous pouvez les inclure ou les exclure du programme de manière conditionnelle en les plaçant dans un bloc COMPILE LONG IF.

Vous pouvez inclure dans votre programme autant de paires BEGIN GLOBALS…END GLOBALS que vous le souhaitez, bien qu’en règle générale, les variables globales sont toutes définies à l’intérieur d’une section unique près du début du programme. Vous pouvez aussi inclure des paires BEGIN GLOBALS…END GLOBALS dans des fonctions locales. Elles doivent être obligatoirement appariées lorsqu’elles figurent à l’intérieur d’une fonction locale, et elles devraient normalement l’être lorsqu’elles figurent dans le “programme principal” de votre programme (le “programme principal” est constitué des lignes qui se trouvent à l’extérieur de toutes les fonctions locales). Quand vous incluez une section BEGIN GLOBALS…END GLOBALS dans votre “programme principal”, elle ne doit contenir aucune fonction locale, sinon la portée des variables risque de devenir imprévisible.

Lorsque, dans le “programme principal”, une variable apparaît pour la première fois à l’intérieur d’une section BEGIN GLOBALS…END GLOBALS, cette variable est déclarée globale pour toutes les fonctions locales qui apparaîtront après cette section. Toutes les autres variables dans le “programme principal” seront locales au “programme principal”.

Important : FB^3 place “implicitement” une commande BEGIN GLOBALS au début de votre programme. Cela signifie que, par défaut, toutes les variables déclarées dans le “programme principal” sont globales. Vous devez inclure une commande END GLOBALS dans le “programme principal” si vous souhaitez que les variables déclarées dans cette partie soient locales.

Lorsque, dans une fonction locale, une variable apparaît pour la première fois à l’intérieur d’une section BEGIN GLOBALS…END GLOBALS, cette variable est déclarée globale pour cette fonction et pour toutes les autres fonctions locales qui apparaîtront après cette fonction. Cette variable est aussi globale dans le “programme principal”, si sa première apparition dans cette partie survient après la fonction dans laquelle la variable a été déclarée comme globale. Toutes les autres variables de la fonction locale sont locales à cette fonction, à moins qu’elles n'aient été déclarées globales dans une précédente section BEGIN GLOBALS…END GLOBALS.

Note :

En ce qui concerne les variables globales, le comportement par défaut de FB^3 est différent de celui de FutureBASIC II. Si vous n’incluez ni une commande BEGIN GLOBALS ni une commande END GLOBALS dans votre programme, alors les deux versions se comportent comme suit :

FB II :

Toutes les variables déclarées dans le “programme principal” sont locales au “programme principal”.

FB^3 :

Toutes les variables déclarées dans le “programme principal” sont globales.

Si vous avez un programme FutureBASIC II qui ne contient pas de commande END GLOBALS, vous devrez en ajouter une au début de votre code (avant toute déclaration de variable) afin de l’exécuter dans FB^3 comme vous l’avez envisagé. Bien entendu, si votre programme FutureBASIC II comporte déjà une commande END GLOBALS, vous n’aurez rien à changer.

Voir Aussi :