Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Here's one of my favorites for dealing with logging repetitive enum names and the like:

  enum foo {
      FOO_THING_ONE,
      FOO_THING_TWO,
      FOO_THING_THREE,
      ...
      FOO_THING_SEVEN_HUNDRED
  };

  // Using concatenate '##' and stringify '#' operators

  #define FANCYCASE(X) case FOO_THING_##X: str=#X; break

  const char *foo_to_str(enum foo myFoo)
  {
      char *str;
      switch(myFoo)
      {
          FANCYCASE(ONE);
          FANCYCASE(TWO);
          FANCYCASE(THREE);
          ...
          FANCYCASE(SEVEN_HUNDRED);
      }
      return str;
  }


You lose your ability to grep, though.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: