For what it's worth, the C90 and C99 standards don't restrict enumerated types to unsigned values.
---
C90 -
http://flash-gordon.me.uk/ansi.c.txt:
3.5.2.2 Enumeration specifiers
[...]
Each enumerated type shall be compatible with an integer type; the
choice of type is implementation-defined.
---
C99 -
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf:
6.7.2.2 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, 110) but shall be capable of representing the values of all the members of the enumeration.
2013年7月11日木曜日 3時46分39秒 UTC-5 Murray Stokely: