c - Is using enums safe in all compilers? -
in discussion, colleague told me never uses enum because experienced some c-compilers don't cope enum statement correctly.
he couldn't remember compiler had problems among problems, there errors when doing like
enum my_enum{ my_enum_first = 5; my_enum_second = 10; }; i.e. initializing enum values instead of letting compiler automatic assignment. 1 compiler decides how big enum , therefore have unpredictable behavior sizeof my_enum when compiling code under various platforms.
to around that, told me better use #defines define constant elements. using doxygen it's quite handy have enum (e.g. function parameter) because in generated documentation, click on my_enum , directly jump description of my_enum.
another example code completion, ide tells specify valid parameters functions. know – long you're compiling code c-code – there's no type-safety (i.e. specify 5 instead of my_enum_first), use of enum seems more cosmetic thing.
the question is: know compilers have limitations regarding usage of enum?
edit 1:
regarding environment: developing various embedded platforms, there could compiler obscure micro-controller...
edit 2:
tell me keil c51 compiler didn't play enums. there experiences current versions of c51 compiler?
i'm pretty sure compiler doesn't play nice enum invalid compiler - enum specified in standard, failure implement means compiler shouldn't technically used compile c (for record, scope of enumeration types discussed in 6.2.1 , defined type in 6.2.5 (of c99), 1 assume it's valid part of standard thereon in)!
no, don't know of such compilers.
Comments
Post a Comment