Direktzugriff auf den Stack ist nicht unmittelbar im Sprachumfang von C(++) vorgesehen.
Dennoch ist er möglich.
Fakt ist aber - egal, wie man es angeht - daß dies in mehrfacher Hinsicht spezifisch ist:
1. nach CPU
2. nach Compiler-Hersteller
3. nach Compiler-Optionen
4. nach Debug-Modi
Was auch immer Du also tust: Du opferst jede Portabilität.
Das gesagt, gibt es viele Varianten:
- Von Microsoft- und Borland-Compilern für 80x86-CPUs kenne ich das direkte Ansprechen der CPU-Register über reservierte Bezeichner.
- Von sämtlichen Compilern kenne ich das Einbinden von Assembler-Code. Die Syntax des unterstützten Inline-Assemblers ist aber vollkommen CPU- und Hersteller-spezifisch.
- Man KANN auch ganz ohne Assembler über wohlplazierte Variablen auf dem Stack an den Stackframe herankommen: Wo der Compiler eine konkrete lokale Variable in den Stack einhängt, ändert sich zwar nicht von Compilation zu Compilation und auch nicht von Funktion zu Funktion, solange deren Parameterlisten gleich bleiben, ist ansonsten aber vollkommen von eben den Parameterlisten, noch viel mehr Compileroptionen und allem möglichen Kickifax drumherum abhängig.
Der effektivste Weg dürfte sein, Inline-Assembler zu verwenden.
Falls Du mit MSVC oder ähnlichem hantierst: Schau auch mal hier:
http://msdn2.microsoft.com/en-us/library/system.diagnostics.stackframe.aspx