INF: How to Get a Pointer to the Stack

ID Number: Q11941

2.00 2.10 3.00

WINDOWS

Summary:

The following information applies to Windows versions 2.x and 3.0.

C pushes its parameters in reverse order (right to left) for the

_cdecl calling convention (default) and in order (left to right) for

the Pascal calling convention.

The first (or last, for the Pascal convention) parameter is always the

last one pushed, and always has the same address relative to the start

of the frame.

In the C compiler documentation, see vsprintf and the va_start macro

in STDARG.H for an example of accessing variable arguments on the

stack.

To get a pointer to the stack, use the following code:

far MyFunction()

{

int x;

int far *y = &x;

}

Note that this pointer will not be valid when the function is exited,

since the stack contents will change.