type d'appel et varagr - C - Programmation
Marsh Posté le 26-11-2003 à 10:59:29
fastcall : passage des paramètres par les registres autant que possible, sinon par la pile
cdecl : les paramètres sont empilés de droite à gauche, la pile doit etre nettoyée par la fonction appelante
stdcall : les paramètres sont empilés de droite à gauche, la pile doit etre nettoyée par la fonction appelée
Marsh Posté le 26-11-2003 à 12:26:02
bleuerouge a écrit : Quel sont tout les type d'appel de fonction et quel est leur avantages par rapport au type std __stdcall ? |
cf reponse harko
manque thiscall mais je crois que ca c'est assez compilo-dependant pour les details (comme stdcall + this dans ECX)
(merde pas vu que la cat c'etait C, oublie)
bleuerouge a écrit : |
Nope, vu que le menage doit etre fait par l'appelant (le seul a connaitre le nombre de param effectivement envoyé) ca sera forcement __cdecl
bleuerouge a écrit : |
msdn
Marsh Posté le 26-11-2003 à 12:26:41
a noter que specifier __stdcall a une fonction membre donne des resultats chelou (this est mis dans ecx + sur la pile)
Marsh Posté le 26-11-2003 à 12:58:03
y'a rien pour les registres tournants du sparc ? ou pour les registres accessibles par fenêtre des alpha (qui sont subtilement différents du sparc) ?
Marsh Posté le 26-11-2003 à 12:59:27
Fodrait voir comment fastcall est implanté sur ces machines
Marsh Posté le 26-11-2003 à 13:03:30
chrisbk a écrit : Fodrait voir comment fastcall est implanté sur ces machines |
la flemme, mais bon, la convention d'appel rapide doit être sensiblement la même, vu que justement ces sytèmes sonts destinés à donner un plus grand rôle aux registres au niveau de l'exécution du programme.
Marsh Posté le 26-11-2003 à 10:53:25
Quel sont tout les type d'appel de fonction et quel est leur avantages par rapport au type std __stdcall ?
Peut on changer le type d'appel avec vararg et est ce possible avec toutes le fonction ?
je sais que villou prefere les appeler WINAPI LRESUL OU CALLBACK
mais je ne sais pas où trouver un def officiel.
Merci.