Nach dem Lesen der folgenden question, verstehe ich, dass es so etwas nicht gibt (zumindest nicht "tragbar").Wie schreibe ich eine Funktion, die einen Zeiger auf den Stapel zurückgeben
Jedoch habe ich auf den folgenden piece of code von Mono Code-Basis am Darstellern, die einen Zeiger auf den Stapel zurück:
static void *
return_stack_ptr()
{
gpointer i;
return &i;
}
Ich bin überrascht, dass der obige Code auch auf Bogen wie PowerPC arbeiten kann, würde ich habe angenommen, das würde nur auf x86 (und vielleicht nur gcc) funktionieren.
Wird dies mit PowerPC funktionieren?
Es gibt keine portable Funktion, die einen Zeiger auf den Stapel in C zurückgeben könnte. Es gibt nur Grade von Unportabilität. –
Diese Art von Zeug ist Plattform und Compiler abhängig. –
Der PowerPC ABI hat die Idee von Stapelspeicher, aber Ihr Compiler kann wählen, Variable 'i' in einen anderen Speicher als den Stapel zu legen. Trotzdem würde ich sagen, dass es mit jedem gängigen PowerPC-Compiler funktioniert. – atturri