www.mikrocontroller.net

Forum: Compiler & IDEs C oder C++?


Autor: JarJar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johngo (Gast)
Datum:

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

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Keine Ahnung, ob das bei WinAVR war, ...

Es war nicht nur, es ist. ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.