Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- static int *address;
- void saveOrLaunch(int launch);
- void printA()
- {
- printf("printA-Begin\n");
- saveOrLaunch(0);
- printf("printA-Return\n");
- }
- void printB()
- {
- printf("printB-Begin\n");
- saveOrLaunch(1);
- printf("printB-Return\n");
- }
- void saveOrLaunch(int launch)
- {
- int* ptr = &launch;
- if (launch)
- ptr[-1] = address;
- else
- address = ptr[-1];
- }
- int main()
- {
- printf("Main: Running printA\n");
- printA();
- printf("Main: Running printB\n");
- printB();
- }
- /*
- $ ./a.out
- Main: Running printA
- printA-Begin
- printA-Return
- Main: Running printB
- @@printB-Begin
- @@printA-Return
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement