я в перечислении добавляю префикс по сокращению от имени типа typedef enum{
  ES_SUCCESS = 0U,
  ES_ERROR = !SUCCESS
} ErrorStatus;
typedef enum { 
  HS_SUCCESS = 0, 
  HS_FAIL = 1, 
  HS_BAD_HASHBITLEN = 2 
} HashReturn;
    Но использовать одновременно 2 типа не получится, можно добавить условную компиляцию, 
#ifndef ErrorStatus;
typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHBITLEN = 2 } HashReturn;
#else
typedef enum { FAIL = 1, BAD_HASHBITLEN = 2 } HashReturn;
#endif