Если вы определяете тип перечисления следующим образом:
enum OGHRet { foo, bar };
затем enum OGHRet
- это просто имя типа. Вы не можете ссылаться на тип просто как OGHRet
; это тег, который виден только после ключевого слова enum
.
Единственный способ получить однозначное имя для типа - это использовать typedef, но это на самом деле не обязательно. Если вы настаиваете на возможности вызова типа OGHRet
вместо enum OGHRet
, вы можете сделать это:
typedef enum { foo, bar } OGHRet;
Здесь тип перечисления объявляется без тега, а затем typedef создает для него псевдоним.