Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2020
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void foo1() {
  4. printf("\nfoo1\n");
  5. int mem[3];
  6. mem[0] = 10;
  7. mem[1] = 13;
  8. mem[2] = 16;
  9. int* stack = mem;
  10.  
  11. printf("mem[0]: %d\n", mem[0]);
  12. printf("mem[1]: %d\n", mem[1]);
  13. printf("mem[2]: %d\n", mem[2]);
  14.  
  15. printf("push 20\n");
  16. *++stack = 20;
  17. printf("push 23\n");
  18. *++stack = 23;
  19.  
  20. printf("mem[0]: %d\n", mem[0]);
  21. printf("mem[1]: %d\n", mem[1]);
  22. printf("mem[2]: %d\n", mem[2]);
  23.  
  24. printf("pop: %d\n", *stack--);
  25. printf("pop: %d\n", *stack--);
  26.  
  27. printf("mem[0]: %d\n", mem[0]);
  28. printf("mem[1]: %d\n", mem[1]);
  29. printf("mem[2]: %d\n", mem[2]);
  30. }
  31.  
  32. void foo2() {
  33. printf("\nfoo2\n");
  34. int mem[3];
  35. mem[0] = 10;
  36. mem[1] = 13;
  37. mem[2] = 16;
  38. int* stack = mem;
  39.  
  40. printf("mem[0]: %d\n", mem[0]);
  41. printf("mem[1]: %d\n", mem[1]);
  42. printf("mem[2]: %d\n", mem[2]);
  43.  
  44. printf("push 20\n");
  45. *++stack = 20;
  46. printf("push 23\n");
  47. *++stack = 23;
  48.  
  49. printf("mem[0]: %d\n", mem[0]);
  50. printf("mem[1]: %d\n", mem[1]);
  51. printf("mem[2]: %d\n", mem[2]);
  52.  
  53. printf("pop: %d\n", (*stack)--);
  54. printf("pop: %d\n", (*stack)--);
  55.  
  56. printf("mem[0]: %d\n", mem[0]);
  57. printf("mem[1]: %d\n", mem[1]);
  58. printf("mem[2]: %d\n", mem[2]);
  59. }
  60.  
  61. void foo3() {
  62. printf("\nfoo3\n");
  63. int mem[3];
  64. mem[0] = 10;
  65. mem[1] = 13;
  66. mem[2] = 16;
  67. int* stack = mem;
  68.  
  69. printf("mem[0]: %d\n", mem[0]);
  70. printf("mem[1]: %d\n", mem[1]);
  71. printf("mem[2]: %d\n", mem[2]);
  72.  
  73. printf("push 20\n");
  74. *++stack = 20;
  75. printf("push 23\n");
  76. *++stack = 23;
  77.  
  78. printf("mem[0]: %d\n", mem[0]);
  79. printf("mem[1]: %d\n", mem[1]);
  80. printf("mem[2]: %d\n", mem[2]);
  81.  
  82. printf("pop: %d\n", *(stack--));
  83. printf("pop: %d\n", *(stack--));
  84.  
  85. printf("mem[0]: %d\n", mem[0]);
  86. printf("mem[1]: %d\n", mem[1]);
  87. printf("mem[2]: %d\n", mem[2]);
  88. }
  89.  
  90. int main(int argc, char** argv) {
  91. foo1();
  92. foo2();
  93. foo3();
  94. return 0;
  95. }
  96.  
  97. /* output:
  98.  
  99. foo1
  100. mem[0]: 10
  101. mem[1]: 13
  102. mem[2]: 16
  103. push 20
  104. push 23
  105. mem[0]: 10
  106. mem[1]: 20
  107. mem[2]: 23
  108. pop: 23
  109. pop: 20
  110. mem[0]: 10
  111. mem[1]: 20
  112. mem[2]: 23
  113.  
  114. foo2
  115. mem[0]: 10
  116. mem[1]: 13
  117. mem[2]: 16
  118. push 20
  119. push 23
  120. mem[0]: 10
  121. mem[1]: 20
  122. mem[2]: 23
  123. pop: 23
  124. pop: 22
  125. mem[0]: 10
  126. mem[1]: 20
  127. mem[2]: 21
  128.  
  129. foo3
  130. mem[0]: 10
  131. mem[1]: 13
  132. mem[2]: 16
  133. push 20
  134. push 23
  135. mem[0]: 10
  136. mem[1]: 20
  137. mem[2]: 23
  138. pop: 23
  139. pop: 20
  140. mem[0]: 10
  141. mem[1]: 20
  142. mem[2]: 23
  143.  
  144. */
  145.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement