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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Per Westermark
10/25/11 02:34
Read: 528 times
Sweden


 
#184354 - Intelligence
Responding to: Marshall Brown's previous message
The preprocessor is stupid. It is just a glorified automatic search/replace engine.

The compiler, on the other hand, knows about data types.

So a good compiler can generate warnings if you have a switch statement that misses handling of one or more enum values - it would not know anything if you used #define.

Since enum represents data types, you can specify these data types when you create variables or member fields of structures. If you program with #define, you must settle for char, int, ... as data type. But a field of type "unsigned char" does not tell the reader that the field is expected to only contain valid action types. A field of type "Action" will tell the developer what is expected. And will allow the compiler to generate a warning if you try to assign a value not part of the "Action" enumeration.

List of 23 messages in thread
TopicAuthorDate
User entered recipes ???      Marshall Brown      10/24/11 13:35      
   Just create array of regular rules      Per Westermark      10/24/11 15:30      
      Thanks - that's great      Marshall Brown      10/24/11 17:35      
         programming language      Jan Waclawek      10/25/11 00:55      
            programming language - not really      Marshall Brown      10/25/11 01:21      
               consider enum        Per Westermark      10/25/11 01:48      
                  thanks - implemented.      Marshall Brown      10/25/11 02:23      
                     Intelligence      Per Westermark      10/25/11 02:34      
                        I must have a stupid compiler      Marshall Brown      10/25/11 03:05      
                           Not all compilers are as good at generate warnings      Per Westermark      10/25/11 03:28      
                              no warning/error on the compiler      Marshall Brown      10/25/11 03:55      
                                 response from Raisonance      Marshall Brown      10/27/11 09:51      
                  enumerations on 8051      Andy Peters      10/25/11 12:14      
                     enums are 8bit by default on Raisonance      Marshall Brown      10/25/11 12:42      
                        NULL      Jan Waclawek      10/26/11 04:08      
                           Could you show me the code      Marshall Brown      10/26/11 13:49      
                              compatibility et al      Jan Waclawek      10/27/11 04:15      
                                 why change pointer to CODE?      Marshall Brown      10/27/11 10:21      
                                    enum advantage      Michael Karas      10/27/11 11:18      
                                    user page does not work (at least for me)      Jan Waclawek      10/28/11 15:26      
                                       try it now      Marshall Brown      10/30/11 17:08      
                     re: enumerations on 8051      Andy Peters      11/01/11 15:22      
   Article on Hierarchical Menu Structure      Aubrey Kagan      11/02/11 09:42      

Back to Subject List