Options de conventions d'appel (BCC32)

De RAD Studio
Aller à : navigation, rechercher

Remonter à BCC32


Les conventions d'appel déterminent les séquences d'appel que le compilateur génère pour les appels de fonctions. Les conventions d'appel diffèrent chacune dans la manière de gérer le nettoyage de la pile, l'ordre des paramètres, la casse et le préfixe des identificateurs globaux.

Vous pouvez définir la convention d'appel de votre projet dans l'EDI à partir de la page des options du compilateur C++ accessible par Projet > Options. Vous pouvez également utiliser le mot clé d'une convention d'appel sur des fonctions spécifiques pour redéfinir la convention d'appel par défaut uniquement sur ces fonctions.

Convention d'appel Description Mot clé Commutateur de ligne de commande

C (EN)

Les caractères de soulignement sont générés, les noms sont sensibles à la casse, les paramètres sont poussés de la droite vers la gauche.

Les fonctions peuvent prendre une liste variable de paramètres (le nombre de paramètres n'est pas obligatoirement fixe).

C'est la convention d'appel par défaut de BCC32.

__cdecl

-pc
-p-

Pascal (EN)

Les caractères de soulignement ne sont pas générés, les noms sont en majuscules, la fonction appelante doit nettoyer la pile, les paramètres sont poussés de la gauche vers la droite.

Les appels de fonctions résultants sont généralement plus compacts et plus rapides que ceux opérés avec la convention d'appel C. Les fonctions doivent transmettre le nombre correct et le type des arguments.

__pascal

-p

Register (fastcall) (EN)

Transmet les trois premiers arguments (évalués de la gauche vers la droite) à EAX, EDX, ECX, et pousse les arguments restants sur la pile de la gauche vers la droite.

__fastcall

-pm
-pr

Standard Call (EN)

Les caractères de soulignement ne sont pas générés, la casse des noms est conservée, la fonction appelée doit nettoyer la pile, les paramètres sont poussés de la droite vers la gauche.

Les fonctions doivent transmettre le nombre correct et le type des arguments.

__stdcall

-pm

Voir aussi