Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.91 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void c0(char* cv, void (**cf)(), void (*next)());
  5. void c9(char* cv, void (**cf)()) { *cv = '9'; *cf = (void(*)())c0; }
  6. void c8(char* cv, void (**cf)()) { *cv = '8'; *cf = (void(*)())c9; }
  7. void c7(char* cv, void (**cf)()) { *cv = '7'; *cf = (void(*)())c8; }
  8. void c6(char* cv, void (**cf)()) { *cv = '6'; *cf = (void(*)())c7; }
  9. void c5(char* cv, void (**cf)()) { *cv = '5'; *cf = (void(*)())c6; }
  10. void c4(char* cv, void (**cf)()) { *cv = '4'; *cf = (void(*)())c5; }
  11. void c3(char* cv, void (**cf)()) { *cv = '3'; *cf = (void(*)())c4; }
  12. void c2(char* cv, void (**cf)()) { *cv = '2'; *cf = (void(*)())c3; }
  13. void c1(char* cv, void (**cf)()) { *cv = '1'; *cf = (void(*)())c2; }
  14. void c0(char* cv, void (**cf)(), void (*next)()) { *cv = '0'; *cf = (void(*)())c1; next(); }
  15.  
  16. typedef void (*lol)(int*, void(**)(), void(*)());
  17. static char av = 0, bv = 0;
  18. static lol af = c1, bf = c1;
  19.  
  20. void c() {
  21.     puts("Buzz");
  22.     exit(0);
  23. }
  24. void b() {
  25.     bf(&bv, &bf, c);
  26. }
  27. void a() {
  28.     af(&av, &af, b);
  29. }
  30.  
  31. void fizz() {
  32.     puts("Fizz");
  33. }
  34. void buzz() {
  35.     puts("Buzz");
  36. }
  37. void fizzbuzz() {
  38.     puts("FizzBuzz");
  39. }
  40. void num() {
  41.     printf("%c%c\n", bv, av);
  42. }
  43.  
  44. void (*fbv)();
  45. void (*fb)();
  46.  
  47. void fb0();
  48. void fb14() { fbv = num; fb = fb0; }
  49. void fb13() { fbv = num; fb = fb14; }
  50. void fb12() { fbv = fizz; fb = fb13; }
  51. void fb11() { fbv = num; fb = fb12; }
  52. void fb10() { fbv = buzz; fb = fb11; }
  53. void fb9() { fbv = fizz; fb = fb10; }
  54. void fb8() { fbv = num; fb = fb9; }
  55. void fb7() { fbv = num; fb = fb8; }
  56. void fb6() { fbv = fizz; fb = fb7; }
  57. void fb5() { fbv = buzz; fb = fb6; }
  58. void fb4() { fbv = num; fb = fb5; }
  59. void fb3() { fbv = fizz; fb = fb4; }
  60. void fb2() { fbv = num; fb = fb3; }
  61. void fb1() { fbv = num; fb = fb2; }
  62. void fb0() { fbv = fizzbuzz; fb = fb1; }
  63.  
  64. void go() {
  65.     a();
  66.     fb();
  67.     fbv();
  68.     go();
  69. }
  70.  
  71. void main() {
  72.     fb = fb1;
  73.     go();
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement