Вам не нужно это делать. В C (не C ++) вы должны были использовать enum Enumname для ссылки на элемент данных перечислимого типа. Чтобы упростить его, вам было разрешено typedef использовать тип данных с одним именем.
typedef enum MyEnum {
//...
} MyEnum;
разрешенные функции, принимающие параметр перечисления, должны быть определены как
void f( MyEnum x )
вместо более длинного
void f( enum MyEnum x )
Обратите внимание, что имя typename не обязательно должно совпадать с именем enum. То же самое происходит со структурами.
В C ++, с другой стороны, это не требуется, поскольку к перечислениям, классам и структурам можно обращаться напрямую как к типам по их именам.
// C++
enum MyEnum {
// ...
};
void f( MyEnum x ); // Correct C++, Error in C