3 ms·
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_
by nsb1 7y ago
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;
}
- erichurkman 7y agoYou lose your ability to grep, though.