It's up to the implementation how big an enum is.  From section 6.7.2.2p4 of the C standard regarding Enumeration specifiers:
Each  enumerated  type  shall  be  compatible  with
  char ,  a  signed  integer  type,  or  an unsigned  integer  type.
The  choice  of  type  is  implementation-defined, but  shall  be
  capable   of   representing   the   values   of   all   the   members 
  of   the   enumeration.    The enumerated  type  is  incomplete  until
  immediately  after  the } that  terminates  the  list  of enumerator
  declarations, and complete thereafter.
So the size of an enum type could be the size of an int, char, or any other integer type.  As an example, gcc sizes enums as follows:
Normally, the type is unsigned int if there are no negative values in
  the enumeration, otherwise int. If -fshort-enums is specified, then if
  there are negative values it is the first of signed char, short and
  int that can represent all the values, otherwise it is the first of
  unsigned char, unsigned short and unsigned int that can represent all
  the values.
As for the values of each member, paragraph 3 states:
The  identifiers  in  an  enumerator  list  are  declared  as 
  constants  that  have  type int and may   appear   wherever   such
  are   permitted.  An   enumerator   with
  = defines   its enumeration constant as the value of the constant expression.  If the first enumerator has no
  = , the value of its enumeration constant is 0.  Each subsequent enumerator with no
  = defines  its  enumeration  constant  as  the  value  of  the  constant  expression  obtained  by adding 1 to the value of the
  previous enumeration constant.  (The use of enumerators with
  = may produce enumeration constants with values that duplicate other values in the same enumeration.)  The enumerators of an enumeration
  are also known as its members.
In this case, the constant ENUM_5 is explicitly assigned the value 0xFFFFFFF0, so  ENUM_6 is 0xFFFFFFF, ENUM_7 is 0xFFFFFFF2, and ENUM_8 is 0xFFFFFFF3.  Each of these constants needs 4 bytes to store the value, so this particular enum must be at least 4 bytes in size, although it could be larger.
Regarding:
How it saves all of its enum member values within 4 bytes?
It doesn't hold all 4 members at once. An enum can hold one of those 4 members. You're defining a type, not a value. For example:
enum enumStruc_2 e1 = ENUM_5;
enum enumStruc_2 e2 = ENUM_6;