ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1222812
Связанные сообщения
Macro
Вчерне получилось, так вот2022-07-06
Классика жанра же: когда делаешь макрос, его всегда, кроме случаев когда невозможно, нужно делать выражением (а не оператором --...2020-09-11
К сожалению openwatcom реально стар. Это код для условно современного C-компилятора, поддерживающего C99. У openwatcom не полноф...2019-12-11
Можно просто енумы генерировать через макрос, который сгенерирует и энум, и inline-функцию принимающую данный enum и возвращающу...2019-12-11
Я на нечто подобное нарывался. Теперь вся отладка складывается в FIFO, только потом ее обрабатываю.2017-11-24
Nikolay801_ (12.07.2022 15:41, просмотров: 3929)
есть метод енум в строку преобразовать? 

есть такой кот

typedef enum {
  NO = 0,
  YES,
  ELSE
}RESULT;

const char *result_name(RESULT val){
  switch(val){
  case NO: return "NO";
  case YES: return "YES";
  case ELSE: return "ELSe";
  default: return "UNKNOWN";
  }
};

void foo(void){
  RESULT ret;
  ret = question();
  printf("%s\n", result_name(ret));
}

Вот хочется какой макрос чтобы одновременно получать и енум и массив строк ему эквивалентный, что бы не делать лишнюю функцию преобразующую в имя.

Интуиция подсказывает, что метод должон быть, а научно доказать не могу.

Будь ты проклят, Перри-Утконос!