type d'appel et varagr

type d'appel et varagr - C - Programmation

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.
 

Reply

Marsh Posté le 26-11-2003 à 10:53:25   

Reply

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

Reply

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 :


Peut on changer le type d'appel avec vararg et est ce possible avec toutes le fonction ?


 
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 :


mais je ne sais pas où trouver un def officiel.


msdn


Message édité par chrisbk le 26-11-2003 à 13:09:41
Reply

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)


Message édité par chrisbk le 26-11-2003 à 12:27:01
Reply

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) ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 26-11-2003 à 12:59:27    

Fodrait voir comment fastcall est implanté sur ces machines
 
 

Reply

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.


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed