fork download
  1. #include <cstdio>
  2. #include <cstdlib>
  3.  
  4. enum Enum1
  5. {
  6. ENUM1_NORTH,
  7. ENUM1_SOUTH,
  8. ENUM1_EAST,
  9. ENUM1_WEST,
  10. ENUM1_COUNT
  11. };
  12.  
  13. enum Enum2
  14. {
  15. ENUM2_WEST,
  16. ENUM2_NORTH,
  17. ENUM2_SOUTH,
  18. ENUM2_EAST,
  19. ENUM2_COUNT
  20. };
  21.  
  22. Enum1 get()
  23. {
  24. Enum1 gen = (Enum1) (rand() % ENUM1_COUNT);
  25. printf("Generated: ");
  26. switch(gen)
  27. {
  28. case(ENUM1_NORTH):
  29. printf("North\n");
  30. break;
  31. case(ENUM1_SOUTH):
  32. printf("South\n");
  33. break;
  34. case(ENUM1_EAST):
  35. printf("East\n");
  36. break;
  37. case(ENUM1_WEST):
  38. printf("West\n");
  39. break;
  40. }
  41. return gen;
  42. }
  43.  
  44. void perform(Enum2 in)
  45. {
  46. printf("Performed: ");
  47. switch(in)
  48. {
  49. case(ENUM2_NORTH):
  50. printf("North\n");
  51. break;
  52. case(ENUM2_SOUTH):
  53. printf("South\n");
  54. break;
  55. case(ENUM2_EAST):
  56. printf("East\n");
  57. break;
  58. case(ENUM2_WEST):
  59. printf("West\n");
  60. break;
  61. }
  62. }
  63.  
  64. int main()
  65. {
  66. int foo = get();
  67. perform((Enum2) foo);
  68. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
Generated: West
Performed: East