![]() |
Re: C or C++
Quote:
Quote:
|
Re: C or C++
Quote:
|
Re: C or C++
It's amazing the misconceptions that have been posted here about the differences between C and C++. C++ code doesn't have to be bloated compared to equivalent C code. When using the advanced features you do have to know what you're doing if you don't want to pay a size or performance penalty.
I used C for years and then moved to C++. Moving back to C was an extreme shock. Having to jump through hoops to do reasonable encapsulation and using funky naming conventions to keep the code organized and readable is a roaring pain. The lack of proper const types is inhibiting. Some here seem to think that using C++ entails a lot of new and free calls to create and destroy objects. If your C code isn't using a lot of malloc and free calls, there will be no difference. And for a FIRST robot you really don't need any dynamic memory allocation. C++ is a much better language and with proper use can even produce smaller, faster code than C. Not to mention if the code is properly written, it's easier to understand, maintain, and more robust. |
Re: C or C++
I always thought the problem with object oriented languages and microcontrolers was the async nature of OO. In other words OO is terrible for RTOS's.
|
Re: C or C++
Quote:
Modular programming is obviously a good thing, but I don't really see a good use for classes and inheritance and polymorphism and such. |
Re: C or C++
Quote:
|
Re: C or C++
Quote:
|
Re: C or C++
Quote:
That said, however, most microcontroller programs have to deal with asynchronous events. |
Re: C or C++
http://www.virginiafirst.org/workshop_info.shtml
I figure it just a typo but look at "Beginning Programming - part 1". Maybe they know something we dont know. Im pretty sure its a typo though. |
Re: C or C++
I screw it all. Let's go back to the PBASIC boards from a few years ago.
|
Re: C or C++
Quote:
|
Re: C or C++
I'm going to try to clarify somethings about using OOP on the current breed of controllers.
Using any kind of memory management on the PIC18s would incur a performance penalty in terms of pointers, indirect addressing, management overhead, etc. I don't care how few malloc()/free() calls there are; it only takes one. In order to perform indirect addressing, you have to copy the pointer to a special register. Every dereference requires this, on a byte-by-byte basis. I'm not even sure you can perform an indirect function call. (Remember, code is stored seperate from data.) I agree that using OOP principles is a Good Thing(tm). But the limits of the PIC18 processors are such that full-blown OOP (or even just objects) as it is normally implemented is impractical. |
| All times are GMT -5. The time now is 18:07. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi