Forum: Compiler & IDEs C oder C++?


von JarJar (Gast)


Lesenswert?

Hi,
nochmal was anderes: ist C++ auf einem µC sinnvoll? alles was ich
bisher darüber gehört hab spricht gegen C++ weil es mehr Speicher und
Rechneleistung braucht als C. Im WinAVR User Manual steht das auch:

"C language and C++ language compiler for AVR target. There are
caveats for using the C++ compiler."

Also auf OOP verzichten und klassisch programmieren?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> ist C++ auf einem µC sinnvoll?

Das hängt von deiner Applikation ab und davon, wie gut du die kleinen
Fallen von C++ verstanden hast.  Ein vergessenes `&' in einer
Deklaration kann mächtig Ressourcen verschwenden.

> alles was ich bisher darüber gehört hab spricht gegen C++ weil es
> mehr Speicher und Rechneleistung braucht als C.

Quark.

Ansonsten ist wohl schon genügend zum Thema gelabert worden, schau
dich doch erstmal im Forum um.

von Rolf Magnus (Gast)


Lesenswert?

> nochmal was anderes: ist C++ auf einem µC sinnvoll?

Ja.

> alles was ich bisher darüber gehört hab spricht gegen C++ weil es
> mehr Speicher und Rechneleistung braucht als C.

Das ist Blödsinn. Wenn man es richtig angeht, kann man hübsche Klassen
basteln, die einen Overhead von genau 0 gegenüber C haben. Ich hab da
auch schon ein bisschen gebastelt und will mir eine kleine
Klassenbibliothek für das Ansprechen der Hardware im AVR-Controller
(pins, timer, pwm, ...) schreiben, mit der der Code auch etwas
beschreibender sind (PortB1.setDirection(Out); statt DDIRB |=
_BV(DDIRB1);). Die bisherigen Tests sehen im generierten Code genauso
aus, wie der vom C-Compiler generierte.
Man muß sich halt etwas auskennen und wissen, was der Compiler aus
bestimmten Sprachkonstrukten macht.

> Also auf OOP verzichten und klassisch programmieren?

Geht natürlich auch. Ich finde die Möglichkeiten von C++ recht
vielversprechend, deshalb werde ich das auf jeden Fall weiter
verfolgen.

von Johngo (Gast)


Lesenswert?

Wie schaltet man denn C++ im WinAVR ein? Muss dazu etwas im Makefile
umgestellt werden?

von Rolf Magnus (Gast)


Lesenswert?

Kenne mich mit WinAVR nicht aus. Normalerweise gibst du den Dateien
einfach eine C++-Endung (cpp, cxx, C, cc, ...) und benutzt g++ statt
gcc.
Irgendwo habe ich mal was von einem fehlerhaften Makefile gehört, das
c++-Files nicht als Quellen betrachtet und daher bei einem "make
clean" löscht. Keine Ahnung, ob das bei WinAVR war, aber ich
schreib's vorsichtshalber trotzdem, weil ich nicht verantwortlich
dafür sein will, wenn jemand anders seinen Code verliert.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Keine Ahnung, ob das bei WinAVR war, ...

Es war nicht nur, es ist. ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.