C oder C++?

Gast #237423
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
> 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
> 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
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

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.