On 2022-03-24 11:54:15 +1300, Thomas Munro wrote: > Erm, is that really OK? C says "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." It could even legally vary from enum to enum, > though in practice most compilers probably just use ints all the time > unless you use weird pragma pack incantation. Therefore I think you > need an intermediate variable with the size and signedness matching the > format string, if you're going to scanf directly into it, which > David's V6 did.
/me yearns for the perfectly reasonable C++ 11 feature of defining the base type for enums (enum name : basetype { }). One of those features C should have adopted long ago. Not that we could use it yet, given we insist that C standards have reached at least european drinking age before relying on them.