Как преобразовать переменную типа перечисления в строку?

Как заставить printf показывать значения переменных перечислимого типа? Например:

typedef enum {Linux, Apple, Windows} OS_type; 
OS_type myOS = Linux;

, а мне нужно что-то вроде

printenum(OS_type, "My OS is %s", myOS);

, в котором должна отображаться строка «Linux», а не целое число.

Я полагаю, сначала мне нужно создать индексированный по значениям массив строк. Но я не знаю, лучший ли это способ сделать это. Возможно ли это вообще?

110
задан sk8forether 27 June 2017 в 22:19
поделиться