Bug, or just weird subtlety of ANSI C when it comes to enums and ints?
typedef enum { es16_1, es16_2, es16_3, es16_Force16 = 0x7fff } EnumS16; typedef enum { eu16_1, eu16_2, eu16_3, eu16_Force16 = 0xffff } EnumU16;