Как преобразовать переменную типа enum в строку?
Как сделать printf, чтобы показать значения переменных, которые имеют тип перечисления? Например:
typedef enum {Linux, Apple, Windows} OS_type;
OS_type myOS = Linux;
а мне нужно что-то вроде
printenum(OS_type, "My OS is %s", myOS);
который должен показывать строку "Linux", а не целое число.
Я полагаю, сначала я должен создать индексированный по значению массив строк. Но я не знаю, если это самый красивый способ сделать это. Возможно ли это вообще?