REGISTER |
Registre |
Delphi/Kylix/Lazarus |
Syntaxe
Function identf(param):typef; Register;corps de la fonction;
|
Procedure identproc(param); Register;corps de la procédure;
|
Paramètres
Nom |
Description |
identf |
Ce paramètre permet d'indiquer l'identificateur de la fonction. |
identproc |
Ce paramètre permet d'indiquer l'identificateur de nom de la procédure. |
param |
Ce paramètre permet d'indiquer les paramètres de la fonction. |
typef |
Ce paramètre permet d'indiquer le type de données de la fonction. |
Description
Ce mot réservé permet d'indiquer qu'il faut utiliser, si possible, les registres du microprocesseur plutôt que la pile de programme pour les appels de fonction ou de procédure.
Remarques
- La directive register indique au compilateur d'utiliser la convention d'appel de registre rapide de Borland pour
la fonction ou la procédure. L'appelant entrepose la première fois trois paramètres dans les registres EAX, EDX et ECX, et a poussé les paramètres restants sur
la pile, en commençant par le paramètre le plus à gauche.
- Les paramètres ne rentrant pas dans un registre 32 bits (comme Double) sont poussés sur la pile, de sorte que les registres contiennent les trois
premiers paramètres n'étant pas sur la pile. Avant le retour du sous-programme, il fait apparaître les paramètres de la pile.
- Les fonctions renvoient des valeurs ordinales, des pointeurs et de petits enregistrements ou ensembles dans EAX et des valeurs à virgule flottante sur la pile FPU.
Les chaînes de caractères, les tableaux dynamiques, Variant et les enregistrements et ensembles volumineux sont transmis en tant que paramètre
var masqué. Ce paramètre caché est le dernier paramètre. Si le sous-programme est une méthode, Self est passé dans
EAX.
- La convention d'appel de registre de Borland est différente de la convention d'appel de registre de
Microsoft. Pour une compatibilité maximale dans un objet DLL ou COM, utilisez les conventions
stdcall ou safecall.
- La convention d'appel Register est la valeur par défaut.
Dernière mise à jour : Mercredi, le 18 avril 2019