VARPTR |
Pointeur de variable |
---|---|
QuickBASIC/QBasic |
Syntaxe
VARPTR(nomVariable) |
Paramètres
Nom | Description |
---|---|
nomVariable | Ce paramètre permet d'indiquer une variable à déterminer l'adresse d'offset |
Description
Cette fonction permet d'indiquer l'emplacement en mémoire d'une variable ou d'un bloc de tampon fichier.
Remarques
- Le paramètre nomVariable peut être n'importe quelle variable BASIC, y compris une variable d'enregistrement ou un élément d'enregistrement. La fonction VARPTR renvoie un entier non signé étant le déplacement de la variable dans son segment. La fonction VARSEG renvoie un entier non signé étant la partie segment de l'adresse de la variable. Si nomVariable n'est pas défini avant l'appel de VARPTR ou VARSEG, la variable est créée et son adresse est renvoyée. Lorsque nomVariable est une variable de chaîne de caractères, VARPTR et VARSEG renvoient l'emplacement du premier octet du descripteur de chaîne de caractères.
- Étant donné que de nombreuses instructions BASIC modifient les emplacements des variables en mémoire, utilisez les valeurs renvoyées par VARPTR et VARSEG immédiatement après l'utilisation des fonctions.
- Les fonctions VARPTR et VARSEG sont souvent utilisés avec BLOAD, BSAVE, CALL ABSOLUTE, CALL INTERRUPT, PEEK, POKE, ou lors du passage de tableaux à des procédures écrites dans d'autres langages de programmations.
- Lorsque vous utilisez VARPTR ou VARSEG pour obtenir l'adresse d'un tableau, utilisez le premier élément du tableau comme paramètre :
- Vous ne pouvez plus utiliser VARPTR pour obtenir l'adresse du tampon d'un fichier. Utilisez la fonction FILEATTR pour obtenir des informations sur un fichier.
- En outre, les programmes écrits dans les versions antérieures de BASIC utilisant VARPTR pour accéder aux tableaux numériques peuvent ne plus fonctionner. Vous devez maintenant utiliser une combinaison de VARPTR et VARSEG. Par exemple, le fragment QuickBASIC version 3.0 suivant ne fonctionne plus correctement :
- Vous pouvez utiliser VARPTR seul pour obtenir l'adresse d'une variable entreposée dans DGROUP. Vous devez utiliser à la fois VARPTR et VARSEG pour obtenir l'adresse complète d'une variable entreposée en tant qu'objet FAR.
- La fonction VARSEG, combinée à VARPTR, remplace le sous-programme PTR86 utilisé dans les versions précédentes de QuickBASIC.
DIM A(150)
.
.
.
ArrAddress=VARPTR(A(1))
DIM Cube(675)
.
.
.
BSAVE "graph.dat",VARPTR(Cube(1)),2700
Le fragment serait réécrit comme suit :
DIM Cube(675)
.
.
.
' Changer le segment en segment contenant le cube.
DEF SEG=VARSEG(Cube(1))
BSAVE "graph.dat",VARPTR(Cube(1)),2700
' Restaurer le segment BASIC.
DEF SEG
Exemple
Voici un exemple permettant de retourner le contenu d'une autre variable :
on obtiendra le résultat suivant :
A% = 41Voir également
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - CALL ABSOLUTE
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - DEF SEG
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - PEEK
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - POKE
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - VARPTR$
Langage de programmation - BASICA/GWBASIC - Référence de procédures et fonctions - VARPTR