Hello. Just now I learnt that enums can be very usefully used as types,
and was experimenting some with it. The following questions arose.
1. Are enums allowed as types only in C++ and not in C? gcc rejects
using an enum as a type whereas g++ accepts it.
2.
Consider:
enum BODY { SUN, MOON, STAR } ;
enum PLANET { EARTH, VENUS, MARS, PLUTO } ;
int main ( void )
{
BODY body ;
// body = 1 ; // gives error
// body = EARTH ; // gives error
body = (BODY) 1 ; // does not give error. expected.
body = (BODY) EARTH ; // does not give error. expected.
body = 3 ; // does not give error. unexpected.
body = (BODY) PLUTO ; // does not give error. unexpected.
}
When the target enum of the cast contains no name that has the same
integer value as the value being casted, how does g++ accept the cast?
Is this expected behaviour or a bug?
Thanks as always.
Shriramana Sharma.
P.S: Oops, silly me, Pluto isn't a planet any more...
-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html