Как получить относительное значение строки из Enum в C? - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть Enum в C, как показано ниже:

typedef enum {
    idle,
    backup,
    charge,
} ENUM_LUMI_STATE;

и у меня есть следующая функция:

ENUM_LUMI_STATE controllerGetState(void) {
    return idle;
}

Я хочу напечатать это здесь:

printf("the current status of the system is %s \r\n", controllerGetState());

Результат неясен, как вы можете видеть здесь:

текущий статус системы þq st

Я хочу напечатать текущее состояние системы "в режиме ожидания". Подскажите, пожалуйста, как?

1 Ответ

0 голосов
/ 03 сентября 2018

Функция controllerGetState (void) возвращает перечисление, а не строку. Поэтому использование% s для возвращаемого значения вернет мусор. Вы можете использовать% d, чтобы получить значение, которое в этом случае будет равно 0.

Подробный ответ дан в Как преобразовать имена перечислений в строку в c

...