Advertisement
Guest User

Dan

a guest
Feb 18th, 2010
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.64 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. static int *address;
  4. void saveOrLaunch(int launch);
  5. void printA()
  6. {
  7.     printf("printA-Begin\n");
  8.     saveOrLaunch(0);
  9.     printf("printA-Return\n");
  10. }
  11. void printB()
  12. {
  13.     printf("printB-Begin\n");
  14.     saveOrLaunch(1);
  15.     printf("printB-Return\n");
  16. }
  17. void saveOrLaunch(int launch)
  18. {
  19.     int* ptr = &launch;
  20.     if (launch)
  21.         ptr[-1] = address;
  22.     else
  23.         address = ptr[-1];
  24. }
  25. int main()
  26. {
  27.     printf("Main:  Running printA\n");
  28.     printA();
  29.     printf("Main:  Running printB\n");
  30.     printB();
  31. }
  32.  
  33. /*
  34. $ ./a.out
  35. Main:  Running printA
  36. printA-Begin
  37. printA-Return
  38. Main:  Running printB
  39. @@printB-Begin
  40. @@printA-Return
  41. */
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement