• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Literatur fuer den umstieg zu C

Der Ziegentobi

Hurensohn h.c. auf Lebenszeit
Mitglied seit
26.02.2005
Beiträge
31.858
Reaktionen
5.227
Im maerz trette ich eine stelle als junior embedded code monkey bei welcher ich in c programmieren darf :ugly:. bisher habe ich nur in c++ und python programmiert und suche nun nach literatur welche die feinheiten von c erklaert und den umstieg vereinfacht.
 

Gelöschtes Mitglied 160054

Guest
kA aber C, wirklich? Warum tust du dir das an? C++ ist so Godlike und Python sowieso. C, außer ich habe eine jüngere Aktualisierung verpasst, ist kacke.
 

parats'

Tippspielmeister 2012, Tippspielmeister 2019
Mitglied seit
21.05.2003
Beiträge
20.339
Reaktionen
1.793
Ort
St. Gallen
Was spricht aus deiner Sicht klar gegen C? Du kennst den Anwendungsfall ja nicht. Wenn einem der prozedurale Ansatz reicht, dann ist C doch wunderbar.
 
Zuletzt bearbeitet:

Der Ziegentobi

Hurensohn h.c. auf Lebenszeit
Mitglied seit
26.02.2005
Beiträge
31.858
Reaktionen
5.227
ich wusste das der thread nur aus sollchen antworten bestehen wird :birb:
das die sprache c ist stoert mich ueberhaupt nicht, es ist nur ein werkzeug und man lernt es halt.
 
Mitglied seit
21.07.2012
Beiträge
1.157
Reaktionen
436
Ich habe vor vielen Monden mit diesem Buch angefangen. Relativ trocken und auch optisch nicht besonders ansprechend, aber das war auch die 13. Auflage. Mittlerweile ist es bei der 25 laut der Seite, das hat sich also vielleicht verbessert. Welches Buch man am besten liest hängt auch davon ab was man machen will. Ich schreibe nur hardwarenahes C, es gibt auch entsprechende Literatur die darauf abzielt.
Mit vorhandenen C++ Kenntnissen wirst du beim Umstieg keine großen Probleme haben, es fallen bloß einige Dinge weg (Objektorientierung natürlich als Wichtigstes, Namespaces, viele einfach verfügbare Libs), einiges wird umständlicher (Speicherverwaltung, Strings, ...). In erster Linie muss man seine Denkweise ändern, von objektorientiert zu prozedural/funktional.
Mein Ansatz ist meistens: Bibliothek aufsuchen, 5-10 Bücher mitnehmen oder wenn Zeit kurz hinsetzen und reinlesen, die die mich ansprechen mitnehmen. Kaufen kann man später immer noch falls notwendig.
 

Der Ziegentobi

Hurensohn h.c. auf Lebenszeit
Mitglied seit
26.02.2005
Beiträge
31.858
Reaktionen
5.227
Ich habe vor vielen Monden mit diesem Buch angefangen. Relativ trocken und auch optisch nicht besonders ansprechend, aber das war auch die 13. Auflage. Mittlerweile ist es bei der 25 laut der Seite, das hat sich also vielleicht verbessert. Welches Buch man am besten liest hängt auch davon ab was man machen will. Ich schreibe nur hardwarenahes C, es gibt auch entsprechende Literatur die darauf abzielt.
Mit vorhandenen C++ Kenntnissen wirst du beim Umstieg keine großen Probleme haben, es fallen bloß einige Dinge weg (Objektorientierung natürlich als Wichtigstes, Namespaces, viele einfach verfügbare Libs), einiges wird umständlicher (Speicherverwaltung, Strings, ...). In erster Linie muss man seine Denkweise ändern, von objektorientiert zu prozedural/funktional.
Mein Ansatz ist meistens: Bibliothek aufsuchen, 5-10 Bücher mitnehmen oder wenn Zeit kurz hinsetzen und reinlesen, die die mich ansprechen mitnehmen. Kaufen kann man später immer noch falls notwendig.

werde es mit nordic semiconductor chips zu tun haben. habe bisher ein paar grundlagen in c implementiert um mich damit vertraut zu machen (trees, linked lists etc.). wenn es um speicherverwaltung geht bin ich auf MISRA C:2012 gestossen und ihre regeln was man darf und was nicht, werde mir das von dir empfohlene buch mal anschauen und ansonsten abwarten was im maerz auf mich zu kommt.
 
Mitglied seit
21.07.2012
Beiträge
1.157
Reaktionen
436
In dem Fall würde ich mir zunächst einmal die Toolchain genauer anschauen. Das sind alles ARM Controller, würde mich wundern wenn man da nicht mit C++ arbeiten kann. Selbst wenn es nur C ist, hardwarenahe Programmierung ist programmiertechnisch meist sehr viel simpler als OS-basierte. C ist ohnehin recht übersichtlich vom Sprachumfang her, der Großteil der Sprache ist Teil von C++ das du sowieso kennst. Ich würde mich eher mit den relevanten Datenblättern vertraut machen, welche Hardwarekomponenten die jeweiligen Controller enthalten und wie die funktionieren. Controllerprogrammierung ist in erster Linie Bitschubserei, wissen welches Register was macht und ein gewisses Gefühl für zeitliche Kosten von verschiedenen Operationen. Schau dir am besten Beispielcode/Projekte an, dir wird wahrscheinlich nichts begegnen was du nicht verstehst. Vertraut machen musst du dich eher mit dem Wirelesskram, den anderen integrierten Schnittstellen (SPI, I²C, UART, ...), ADCs, Timer, Interrupts, etc.
 

Der Ziegentobi

Hurensohn h.c. auf Lebenszeit
Mitglied seit
26.02.2005
Beiträge
31.858
Reaktionen
5.227
es wurde ausdruecklich erwaehnt das sie in c programmieren. ich kenne mich mit arduinos und esps aus, habe meinen ganzen garten automatisiert :deliver:. und wenn sie misra-c:2012 folgen faellt sogar vieles von c nochmals weg.

16.2 (req) Functions shall not call themselves, either directly or indirectly.
20.4 (req) Dynamic heap memory allocation shall not be used.
 
Mitglied seit
29.12.2002
Beiträge
3.248
Reaktionen
3
embedded und C, super sache :) wie kommts zum umstieg?

was ich an büchern uneingeschränkt empfehlen kann:
- DAS standardwerk K&R. darf in keinem schrank fehlen
- Expert C Programming: Deep C Secrets habe ich letztens gelesen und für gut befunden, hat nochmal einige feinheiten der sprache die man sonst einfach so hinnimmt beleuchtet, und ist recht unterhaltsam geschrieben.

kA aber C, wirklich? Warum tust du dir das an? C++ ist so Godlike und Python sowieso. C, außer ich habe eine jüngere Aktualisierung verpasst, ist kacke.
dickes lol. C++ ist inzwischen eine missgeburt an wahllos aneinandergeklatschten features die eigentlich niemand braucht.
will man schönes C++ schreiben, muss man 90% der sprache weglassen und schreibt im prinzip C mit ein bisschen syntactic sugar on top.
C hat seine schwächen, ist aber elegant und simpel genug, um komplett verstanden zu werden. es hat schon seine gründe, warum die welt auf C läuft…
 

Der Ziegentobi

Hurensohn h.c. auf Lebenszeit
Mitglied seit
26.02.2005
Beiträge
31.858
Reaktionen
5.227
embedded und C, super sache :) wie kommts zum umstieg?

eigentlich wollte ich als web dev arbeiten, sah jedoch die stellenausschreibung und hab mich einfach mal beworben. als wir beim interview darueber sprachen was ich alles so als hobby tue, wurde mir die stelle nach 20min angeboten.
 
Mitglied seit
29.12.2002
Beiträge
3.248
Reaktionen
3
cool, glückwunsch!
ich denke du wirst deine entscheidung nicht bereuen. ich hab nach 5 jahren web überhaupt keine lust mehr, backend ist größtenteils CRUD bis zum einschlafen und frontend ist ein einziges disaster.
 

Der Ziegentobi

Hurensohn h.c. auf Lebenszeit
Mitglied seit
26.02.2005
Beiträge
31.858
Reaktionen
5.227
cool, glückwunsch!
ich denke du wirst deine entscheidung nicht bereuen. ich hab nach 5 jahren web überhaupt keine lust mehr, backend ist größtenteils CRUD bis zum einschlafen und frontend ist ein einziges disaster.

danke, habe auch nur ueber web nachgedacht da die huerde fuer den einstieg "geringer" erschien. jedoch ist es nun ein kleiner schock eine stelle mit c bekommen zu haben, da ich meine spielerein mit microcontrollern nur als hobby ansehe. scheinbar waren sie doch gut genug um mich durchzusetzen :ugly:.
 
Mitglied seit
02.09.2002
Beiträge
3.281
Reaktionen
106
cool, glückwunsch!
ich denke du wirst deine entscheidung nicht bereuen. ich hab nach 5 jahren web überhaupt keine lust mehr, backend ist größtenteils CRUD bis zum einschlafen und frontend ist ein einziges disaster.
Interessante dev jobs sind halt rar gesät. Irgendwas mit web oder irgendwo berater für java kannste immer und überall werden.
 

Gelöschtes Mitglied 160054

Guest
Was spricht aus deiner Sicht klar gegen C? Du kennst den Anwendungsfall ja nicht. Wenn einem der prozedurale Ansatz reicht, dann ist C doch wunderbar.

Natürlich gibt es Anwendungsfelder für C, ich wollte eigentlich nur ausdrücken, dass C mir so altbacken im Vergleich zu z.B. modernem C++ vorkommt, dass das programmieren mitunter unfassbar unelegant ist. Zudem gibts auch m.W.n. keinen Geschwindigkeitsvorteil mehr zwischen C und C++, d.h. wenn es geht sollte man eigentlich immer C++ programmieren.
 
Oben