Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

19.01.2013, 15:22

Gutes Buch/Anleitung um C zu lernen

Hey Leute,

seit längerem schau ich hier schon ab und zu als Gast vorbei und heute habe ich mich mal registriert.

Ich habe demnächst vor C zu lernen, für die Mikrocontroller Programmierung. Deshalb bin ich auf der Suche nach einem guten Buch oder auch eine Anleitung im Internet (falls es da was ordentliches, kostenloses gibt). Die Suchfunktion hat mir hier hauptsächlich was zu C++ rausgeschmissen, aber damit kann ich leider nichts anfangen. Es sollte schon C sein, da ich nicht mit BASIC anfangen will und Assembler ist mir dann doch bisschen zu schwierig.
Nagut, also ich habe schon Vorkenntnisse in LUA, auch mit OOP. Vielleicht kennt ja jemand die Multiplayer-Mod MTA:SA von GTA:SA, dort entwickle ich derzeit an einem Gamemode mit. Ich weiß, dass LUA jetzt nicht die beste Sprache zum Anfangen ist, wenn man später weitergehen möchte. Mir wurde gesagt, dass eig. alle anderen Sprachen anders arbeiten als LUA. Das wollte ich jetzt nur gesagt haben, damit ihr wisst, dass ich von der allgemeinen Programmierung doch schon zumindest etwas Ahnung habe (ich weiß nicht, wie sich die LUA Kenntnisse auf die anderen Sprachen übertragen lassen).

Ich bedanke mich schon einmal bei euch und hoffe, dass ihr mir ein gutes Buch empfehlen könnt oder auch sonstige Tipps geben könnt.

Mfg Plasm

2

19.01.2013, 15:58

Also gegen C++ wäre ich nicht abgeneigt, dachte nur das wäre auch im Aufbau etwas anders, aber wenn das wirklich nur eine Erweiterung zu C ist, dann würde das ja auch gehen.
Der Link sieht schonmal sehr interessant aus, hab ihn mir aber noch lange nicht ganz durchgelesen, werde ich dann bei Zeit tun, schaut sehr interessant aus :)

Um die Frage dann mal anzupassen, was für gute C++ Bücher gibt es so? Dazu schmeißt denke ich die SuFu auch was brauchbares raus.

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

3

19.01.2013, 16:07

Mal davon abgsehn ist C++ eigentlich nur eine Erweiterung von C um Klassen und haufenweiße nützliche Dinge. Wenn du C++ kannst, kannst du auch C gut genug um damit µC zu programmiern.

Das würde ich so nicht unterschreiben. Die beiden Sprachen haben sehr viele Gemeinsamkeiten, aber gerade das kann auch die Tücke sein, weil es etliche Details gibt, die sich dann doch unterscheiden. Wenn du C++ programmieren willst, dann lerne C++, wenn du doch lieber mit C auf dem µC programmieren willst, dann bleibe bei C. Aber ich empfehle nicht C++ zu lernen und dann C zu programmieren oder anders herum.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

19.01.2013, 16:34

http://www.amazon.de/Der-Programmierer-l…n/dp/3446416447 Wäre ein Beispiel für ein gutes C++ Buch. Ist für den Anfang vielleicht ganz ganz einfach, aber da du schon Lua Erfahrung hast, solltest du das schaffen. Und du hast einen riesigen Vorteil dadurch, dass du schon mit Lua gearbeitet hast. Die Sprachen sind sich zwar nicht sehr ähnlich, aber grundlegende Dinge wie Verzweigungen, Schleifen etc hast du schon mal gesehen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

5

19.01.2013, 17:06

C ist performanter und produziert weniger Overhead


Quellen?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

19.01.2013, 17:07

vtables sind notwendiger Overhead und deren Benutzung führt zu weniger Performance.

Ich bitte aber diese Diskussion abzubrechen und zum eigentlichen Thema - einer Buchempfehlung - zurückzukehren, sonst werde ich das Topic zerschneiden, was am Ende speziell für Plasm (den Thread-Ersteller) von Nachteil wäre.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

7

19.01.2013, 17:37

C ist eine Untermenge von C++ und daher ist C++ eine erweiterung von C. Ist aber auch ein wenig Compilerabhängig.
Was nicht heißen soll, dass man in C so programmiert wie in C++, da C++ OOP Möglichkeiten bietet, die man in C eben nicht nutzt/nutzen kann.

Nein C ist keine Untermenge von C++(zumindest nicht mehr). Ein Beispiel: Variable-Length Arrays sind seit C99 in C erlaubt. In den C++ Standard wurden sie dennoch nicht übernommen, weil C++hier andere Möglichkeiten bietet.

8

19.01.2013, 18:15

Wäre gut, wenn wir wie gesagt zum Topic zurückkehren.
Weil C++ verwendet man, soweit ich gelesen habe, in den wenigsten µC. Da weiß ich aber auch nicht ob die da eine Ecke teurer sind o.ä.

Hätte denn jemand ein gutes Buch über µC mit C? Ich kenne mich da auch überhaupt nicht aus, welche Bücherreihen allgemein gut sind :/

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

19.01.2013, 18:20

C ist streng genommen (leider) keine Untermenge von C++; die Schnittmenge ist aber so groß, dass man zumindest in erster Näherung imo schon davon ausgehen kann. Jemand hat mal gesagt, dass gutes C meistens auch gültiges C++ ist.

Ich hab selbst keine Erfahrung im Embedded Bereich, aber was ich so mitbekommen hab, ist das Problem dort, dass Embedded Systeme sehr oft Echtzeitanforderungen (hat per se nichts mit Performance zu tun!) erfüllen und/oder extrem hohen Sicherheitsstandards genügen müssen, was so weit gehen kann, dass die Korrektheit der Software mathematisch bewiesen werden muss, weil z.B. Menschenleben auf dem Spiel stehen. Die Sprache, in der derartige Software entwickelt werden muss, ist oft vorgeschrieben und selbst das vergleichsweise einfache C macht da oft nicht das Rennen gegen Sprachen wie z.B. Ada und andere, die außerhalb solcher Bereiche eher Exoten sind.

Abgesehen von derart extremen Spezialfällen, ist der imo einzige rationale Grund heutzutage noch C zu verwenden aber, dass es für die Zielplattform keinen vernünftigen C++ Compiler gibt, was bei µC möglicherweise immer noch manchmal zutrifft. Dass C++ langsamer wäre als C ist jedenfalls Schwachsinn. Aber man kann natürlich in jeder Sprache langsamen Code schreiben...

Mein Rat wäre jedenfalls, erstmal auf dem PC ordentlich C++ zu lernen, selbst wenn nur aus dem simplen Grund, seinen Horizont nicht unnötig eng zu halten. Ein guter C++ Programmierer ist meiner Erfahrung nach praktisch immer automatisch auch ein guter C Programmierer, die Umkehrung gilt aber keineswegs.

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »dot« (19.01.2013, 18:38)


10

19.01.2013, 18:40

Okay, dann schaut ja C++ wieder nicht ganz schlecht aus ... Zu C++ gibt es aber auf alle Fälle gute Lektüren. Wenn die Basis von C und C++ gleich ist, sollte das ja genügen. Ansonsten wird es einem sicher nicht schwer fallen wenn man C++ kann und dann paar Sachen direkt aus C braucht, diese noch zu lernen oder?

Werbeanzeige