2009-05-18 4 views

Répondre

9

__ReturnAddress

De MSDN:

La intrinsèque _ReturnAddress fournit l'adresse de l'instruction dans la fonction d'appel qui sera exécuté après le retour de contrôle à l'appelant

Notez que sur certaines plateformes, le résultat peut être trompeur en raison du repli de la queue - le compilateur peut avoir Votre fonction interne retourne 2 niveaux de profondeur. Cela peut généralement se produire pour le code comme ceci:

int DoSomething() 
{ 
    return DoSomethingSpecial(); 
} 

Le compilateur peut générer du code si DoSomethingSpecial retourne directement à l'appelant de DoSomething.

En outre, l'adresse de retour n'est pas fiable, suffisante pour prendre des décisions de sécurité, voir here.

Questions connexes