Stolpersteine für JAVA Entwickler

Hallo
ich komme aus der JAVA Welt und habe angefangen mit mit Arduino etc. zu beschäftigen. Während mir die Syntax in der IDE weitgehend bekannt ist, stolpere ich immer wieder über Fehler, deren Ursachen sich mir nicht ohne weiteres erschliessen. Um erfolgreich danach zu googeln ist es notwendig, dass man in etwa weiss, wo das Problem liegt. Gibt es im Netz irgendwo so eine Art Hilfestellung, die mögliche Stolpersteine für nicht C-Kundige erklärt? Ich könnte dann etwas systematischer mein diesbezügliches Wissen erweitern, statt dauernd nur Versuch und Irrtum zu spielen. Vielen Dank für jeden Hinweis!
Christian

Arduino ist C++, nicht C.

C++11 ist z.Z. Standard in der Arduino Welt.
Bis C++17 ist mittlerweile konfigurierbar.

Also dürftest du mit einem modernen 1000 Seitigen C++ Buch gut bedient sein.

Die Programmierung von Arduino ist C und C++.
Zu Anfang hilft Dir sicher ein Tutorial, Referenz und ein Anfängerkurs für C. Einige Ideen zu C++ bekommst Du wenn Du Arduino programmierst.
Perfekt wirds wenn Du wirklich einen Kurs zu C und C++ machst und C/C++ perfekt beherrscht (wie zB combie) oder Du wurstelst Dich irgendwie durch, wie ich es mache.

Wir helfen Dir gerne auch bei C/C++-Problemen.

Grüße Uwe

und C/C++ perfekt beherrscht (wie zB combie)

Danke für die Blumen.
Aber das ist aus meiner Sicht nicht richtig.

Ich habe in den letzten Jahren tief in die C++ Pulle geschaut, das ist richtig.
Bin aber weit davon entfernt alle Ritzen zu kennen.
Geschweige denn, alle Features trainiert zu haben.

Mein Vorteil war, dass ich sowieso aus der OOP Ecke gekommen bin.
ObjectPascal, PHP, .... und etwas Java

Und da cheug_sk aus der Java Ecke kommt, sollte er die OOP Konzepte schon einigermaßen auf dem Schirm haben. Es muss halt nur das C++ spezifische Zeugs eingeübt werden.

Die Programmierung von Arduino ist C und C++.

*.ino Dateien sind C++
Die meisten Libraries sind in C++
Im Core und in einigen Libs finden sich zudem noch *.c und *. S(Assembler)

Gegen Dich wurstle ich mich mit meinen OOP Anfängerideen nur so irgendwie durch.

Grüße Uwe

Ich komme auch aus der jahrelangen Java Ecke..

Ich denke auch, wie bei Java.. ohne Buch kommt man nicht weit.

Vielleicht hilft auch ein kostenloses Open eBook.

Wichtig ist zu wissen dass Java viel strikter OOP ist. Alles bis auf elementare Datentypen sind Objekte. Selbst Arrays sind Objekte. Das ist in C++ nicht der Fall

Außerdem werden in Java bei Objekten als Funktionsparameter automatisch Referenzen übergeben (genaugenommen wird eine Referenz als Wert übergeben). C++ unterscheidet da genauer zwischen Referenzen und Werten.

C/C++ erlaubt dir generell viel mehr Dinge. z.B. direkten Zugriff auf Speicher. Das macht die Sprache sehr mächtig und schnell, aber ermöglicht auch viel Unsinn. Und du bekommt auch keine Fehlermeldung wenn du mal über Speichergrenzen hinaus schreibst, was schnell passiert ist

stolpere ich immer wieder über Fehler, deren Ursachen sich mir nicht ohne weiteres erschliessen.

Welche das wären?
Haste mal ein Beispiel, so dass man erkennen kann, wo es klemmt.

Wichtig ist zu wissen dass Java viel strikter OOP ist.

Mag sein aber dafür geht es mit dem Arbeitsspeicher so verschwenderisch um, wie sonst keine andere Sprache.
Wenn man unter Windows eine Java App verwendet, geht der belegte Speicher immer weiter nach oben, bis der PC neu gestartet werden muss.
Kann aber auch sein, dass das die Rache von MS ist, weil sie damals Java nicht zum kaufen bekommen haben.
Jedenfalls kann man mit C++ heute noch die schnellsten Programme erstellen. Muss halt für jede Plattform immer neu kompiliert werden.

Das hat doch gar nichts miteinander zu tun

Wenn man unter Windows eine Java App verwendet, geht der belegte Speicher immer weiter nach oben, bis der PC neu gestartet werden muss.

In der allgemeinen Form stimmt das doch nicht.

Wenn man der Java Müllabfuhr eine Chance gibt, dann räumt die auch auf.
Schlampige Programme kann man in jeder Sprache schreiben.