Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
10/25/11 09:28
Read: times


 
#184356 - Not all compilers are as good at generate warnings
Responding to: ???'s previous message
You shouldn't really assign numeric values - that kills much of the advantages with enumerators.

If the compiler will warn or not depends on used compiler, and what warning levels you have turned on.

Another question is - will your compiler warn about:

switch (my_enum_var) {
    case actionEmpty: break;
    case actionOn: break;
    case actionOff: break;
    //actionRegulate, <= case not handled
    case actionPulse: break;
}

With #define, the missing rule for actionRegulate can not be detected. Many compilers will inform that actionRegulate doesn't have an explicit match and that there isn't any garbage collect using a default case.

The difference between enum and #define is that good use of enum always gives more information to the programmer. And use of enum will allow better compiler to produce additional type checking. The #define search/replace does not give any information to programmer or compiler about what set of values that are intended for a variable.

List of 23 messages in thread
TopicAuthorDate
User entered recipes ???            01/01/70 00:00      
   Just create array of regular rules            01/01/70 00:00      
      Thanks - that's great            01/01/70 00:00      
         programming language            01/01/70 00:00      
            programming language - not really            01/01/70 00:00      
               consider enum            01/01/70 00:00      
                  thanks - implemented.            01/01/70 00:00      
                     Intelligence            01/01/70 00:00      
                        I must have a stupid compiler            01/01/70 00:00      
                           Not all compilers are as good at generate warnings            01/01/70 00:00      
                              no warning/error on the compiler            01/01/70 00:00      
                                 response from Raisonance            01/01/70 00:00      
                  enumerations on 8051            01/01/70 00:00      
                     enums are 8bit by default on Raisonance            01/01/70 00:00      
                        NULL            01/01/70 00:00      
                           Could you show me the code            01/01/70 00:00      
                              compatibility et al            01/01/70 00:00      
                                 why change pointer to CODE?            01/01/70 00:00      
                                    enum advantage            01/01/70 00:00      
                                    user page does not work (at least for me)            01/01/70 00:00      
                                       try it now            01/01/70 00:00      
                     re: enumerations on 8051            01/01/70 00:00      
   Article on Hierarchical Menu Structure            01/01/70 00:00      

Back to Subject List