Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 267
  • Last Modified:

How much space is reserved for type enum?

Please consider following enum type.

typedef enum ParamAttrMask{
    ParamAttrMask_None       = 0x00, // Cannot be read or writtent
    ParamAttrMask_Read       = 0x01, // Can read
    ParamAttrMask_Write      = 0x02, // Can write
    ParamAttrMask_ReadWrite  = ParamAttrMask_Read | ParamAttrMask_Write, // Readable and Writable
    ParamAttrMask_Locked     = 0x04, // Needs password to write
    ParamAttrMask_Archive    = 0x08, 
    ParamAttrMask_RunTime    = 0x10,
  } tParamAttrMask;

Open in new window



ParamAttrMask  Attributes;

How many bytes is allocated for Attributes ?  Is it one byte? Is it compiler specifice?
0
naseeam
Asked:
naseeam
1 Solution
 
jkrCommented:
It's usually more implementation-specific than compiler specific, but every compiler usually has a "treat enums as ints" option, so you can assume it usually is the same size. But, why not find out that for sure using

typedef enum ParamAttrMask{
    ParamAttrMask_None       = 0x00, // Cannot be read or writtent
    ParamAttrMask_Read       = 0x01, // Can read
    ParamAttrMask_Write      = 0x02, // Can write
    ParamAttrMask_ReadWrite  = ParamAttrMask_Read | ParamAttrMask_Write, // Readable and Writable
    ParamAttrMask_Locked     = 0x04, // Needs password to write
    ParamAttrMask_Archive    = 0x08, 
    ParamAttrMask_RunTime    = 0x10,
  } tParamAttrMask;
                                  
printf("Enum size is %d\n", sizeof(tParamAttrMask));

Open in new window

0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now