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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Andy Peters
07/12/12 03:51
Read: 521 times
Tucson, Az

#187913 - class vs source
Responding to: Per Westermark's previous message
Per Westermark said:
It totally ignores the differences where C++ gives advantages at zero cost to the target hardware.

Namespaces (explicit, or use of classes - especially with static members and zero instanced object, or local variables inside blocks) are always good to have. We want locality of reference and as small global name pool as possible.

I find that I use individual source files and variables that are file static (global to the source file, invisible elsewhere) as a way to emulate C++ classes in C. I tend to use accessor methods instead of letting those file static variables be globals. This way, I don't run into collisions with having several variables in sources share the same name. Having a class would make this a lot cleaner.

An even better argument for classes would be the case where you have a "driver" for a UART, and your particular micro has more than one UART. If you really want to use one source file (say, uart.c) to handle multiple hardware UARTs, you at minimum need to keep a structure which has the addresses of the UART's data registers, and perhaps other stuff. It gets even more complicated if you implement software FIFOs which are interrupt driven. You get into a hell of pointer dereferencing and which ISR is which and yikes.

A class would abstract all of that. I'm not convinced the overhead of a class (in terms of address passing behind your back) is any better or worse than doing it yourself, but I'd rather let the compiler handle it.

I don't use dynamic memory allocation (malloc) so using new and delete wouldn't be an advantage for me.


List of 16 messages in thread
Who the hell uses C++ in embedded systems...      Jez Smith      06/18/12 06:58      
   So?      Per Westermark      06/18/12 08:08      
   beware of (verbal) inflation.      Erik Malund      06/18/12 10:17      
   Not as many as some would think.      Neil Kurzman      06/18/12 11:43      
      2% don't know      Jez Smith      06/18/12 13:00      
         Same same      Per Westermark      06/18/12 13:46      
         Surveys      Andy Neil      06/18/12 14:26      
   Me!      Oliver Sedlacek      06/19/12 04:30      
      Using tools that only supports C?      Per Westermark      06/19/12 05:13      
         Tools and MISRA      Oliver Sedlacek      06/19/12 06:22      
   C++ "better than C" for embedded systems      Oliver Sedlacek      07/11/12 20:48      
      as far as the '51 goes      Erik Malund      07/12/12 01:16      
         As far as '51 goes - C++ is still viable      Per Westermark      07/12/12 02:05      
            class vs source      Andy Peters      07/12/12 03:51      
         I did say "smallish"      Oliver Sedlacek      07/12/12 08:11      
            Overkill?      Per Westermark      07/12/12 19:01      

Back to Subject List