That is not a reasonable assumption. Some time I had need to compile code where compiler assumed enum is 1 byte long. Common trick to "fix" that is to force enum type to always have 32-bits:
| enum foo
{
value1,
value2,
dummy_value_force_32_bits = 0x7fffffff,
};
|