C oder C++?

Gast #237423
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?
Moderator Persönliche Seite #237424
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.
Gast #237425
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.
Gast #237427
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren