C lernen
C lernen
Hallo Zusmmen,
habe die Idee C zu lernen. Also nicht C++ oder C#, sondern wirklich nur C.
Kennt jemand aus eigener Anschauung ein gutes Tutorial oder Buch, das er auch wirklich empfehlen kann?
Gibt es ein Forum oder etwas ähnliches in dem man sich mit anderen C Programmierern austauschen kann?
Vielen Dank im Voraus
Christian
habe die Idee C zu lernen. Also nicht C++ oder C#, sondern wirklich nur C.
Kennt jemand aus eigener Anschauung ein gutes Tutorial oder Buch, das er auch wirklich empfehlen kann?
Gibt es ein Forum oder etwas ähnliches in dem man sich mit anderen C Programmierern austauschen kann?
Vielen Dank im Voraus
Christian
Re: C lernen
Super!homer65 hat geschrieben:15.10.2024 15:31:11Hallo Zusmmen,
habe die Idee C zu lernen. Also nicht C++ oder C#, sondern wirklich nur C.
Dieses ist der Klassiker: https://en.wikipedia.org/wiki/The_C_Pro ... g_Languagehomer65 hat geschrieben:15.10.2024 15:31:11Kennt jemand aus eigener Anschauung ein gutes Tutorial oder Buch, das er auch wirklich empfehlen kann?
Ich finde es das beste Buch zu C, das ich gelesen habe, aber es kommt sehr darauf an, welche Vorkenntnisse zu hast.
Von mir aus gerne auch hier in diesem Forenbereich.homer65 hat geschrieben:15.10.2024 15:31:11Gibt es ein Forum oder etwas ähnliches in dem man sich mit anderen C Programmierern austauschen kann?
Use ed once in a while!
Re: C lernen
Bei den Kleinigkeiten, die ich bisher gemacht habe fand ich http://www.schellong.de/c.htm sehr hilfreich. Das dazugehörige Buch kenne ich nicht.
Re: C lernen
Danke für die Hinweise und freundlichen Worte.
Habe einfach mal angefangen. Klappt auch ganz gut. Habe noch Schwierigkeiten aus den Fehlermeldungen von gcc die richtigen Schlüsse zu ziehen.
Aber es ist mir gelungen ein erstes Programm jenseits von Hallo Welt zu erstellen.
Es schreibt x und f(x) für eine Funktion und ein Werte Intervall - bei mir Sinus im Intervall [0,1] - in eine Datei.
Diese würde ich gerne plotten.
Mir fiel dazu gnuplot ein.
Kennt sich jemand damit aus und kann mir sagen wie ich die Funktion aus der Datei plotten kann?
Ist zwar nicht direkt C aber passt doch irgendwie zum Thema.
Gruß Christian
Habe einfach mal angefangen. Klappt auch ganz gut. Habe noch Schwierigkeiten aus den Fehlermeldungen von gcc die richtigen Schlüsse zu ziehen.
Aber es ist mir gelungen ein erstes Programm jenseits von Hallo Welt zu erstellen.
Es schreibt x und f(x) für eine Funktion und ein Werte Intervall - bei mir Sinus im Intervall [0,1] - in eine Datei.
Diese würde ich gerne plotten.
Mir fiel dazu gnuplot ein.
Kennt sich jemand damit aus und kann mir sagen wie ich die Funktion aus der Datei plotten kann?
Ist zwar nicht direkt C aber passt doch irgendwie zum Thema.
Gruß Christian
Re: C lernen
Einfach aufrufen und dann plot "Dateiname" eingeben. In "Dateiname" sollten dann die Werte für den gewünschten Graph stehen, in jeder Zeile einer. Allerdings kann gnuplot Funktionen auch von alleine plotten.homer65 hat geschrieben:15.10.2024 17:24:27[..] kann mir sagen wie ich die Funktion aus der Datei plotten kann?
Re: C lernen
Du kannst die C-Programm-Ausgabe der Wertepaare auch direkt nach gnuplot rein_pipen:
Und -e kann man natürlich noch beliebig ausbauen.
Code: Alles auswählen
c_prog | gnuplot -p -e "plot '-'"
Re: C lernen
Meist ist es am wichtigsten, in den Fehlermeldungen die relevante Stelle zu finden, also welche Zeile der Ausgaben die Zeile angibt, um die es geht. Du solltest die Fehlermeldungen zuerst strukturell verstehen. Danach kannst du dich dann mit ihren Inhalten befassen.homer65 hat geschrieben:15.10.2024 17:24:27Habe noch Schwierigkeiten aus den Fehlermeldungen von gcc die richtigen Schlüsse zu ziehen.
Die Fehlermeldungen am besten der Reihe nach abarbeiten und nicht zu weit voraus denken oder verstehen wollen. Manches koennen Folgefehler sein.
Use ed once in a while!
Re: C lernen
Was Meillo bereits genannt hat. Mein ehem. Azubi erzählte mir, dass man dieses Buch auf der FH nur den „K und R“ genannt hat.homer65 hat geschrieben:15.10.2024 15:31:11Kennt jemand aus eigener Anschauung ein gutes Tutorial oder Buch, das er auch wirklich empfehlen kann?
Ich selbst habe C++ quasi „direkt“ gelernt und mir dieses (ziemlich teure, weil zum Standard erkoren) Buch nur gekauft, um im Bedarfsfall C-Grundlagen nachlesen zu können.
Wenn Du nach diesem Buch lernst, lernst Du jedenfalls den ANSI-Standard.
Na, HIER, wo sonstGibt es ein Forum oder etwas ähnliches in dem man sich mit anderen C Programmierern austauschen kann?
Ach ja, das mit den Fehlermeldungen: Es ist erstaunlich, was die GNU-Tools mittlerweile können. Da ich gelernt habe, meine Programme so lange zu bearbeiten, bis sie ohne ein Gemecker vom Compiler „durchgehen“, nerven mich viele dieser Meldungen (weil's meistens nicht um echte Fehler sondern um Hinweise geht).
PS: Wenn Du Fehlermeldungen abarbeitest, fang' ganz oben an. Oft beziehen sich weitere Meldungen auf Folgefehler, die verschwinden, wenn die Ursache beseitigt ist.
Zuletzt geändert von GregorS am 15.10.2024 20:51:25, insgesamt 1-mal geändert.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
- paedubucher
- Beiträge: 931
- Registriert: 22.02.2009 16:19:02
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Schweiz
-
Kontaktdaten:
Re: C lernen
Weil das K&R-Buch (unbedingte Empfehlung!) schon genannt worden ist, möchte ich ergänzend noch C Programming. A Modern Approach empfehlen. Ich habe vor über zehn Jahren einmal die erste Hälfte durchgearbeitet. Es geht auch recht detailliert auf subtile Unterschiede zwischen C89 und C99 ein.
Als zweites Buch dürfte evtl. Effective C, 2nd Edition interessant werden.
Als zweites Buch dürfte evtl. Effective C, 2nd Edition interessant werden.
Habe nun, ach! Java
Python und C-Sharp,
Und leider auch Visual Basic!
Durchaus programmiert mit heissem Bemühn.
Da steh' ich nun, ich armer Tor!
Und bin so klug als wie zuvor.
Python und C-Sharp,
Und leider auch Visual Basic!
Durchaus programmiert mit heissem Bemühn.
Da steh' ich nun, ich armer Tor!
Und bin so klug als wie zuvor.
-
- Beiträge: 1971
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: C lernen
Laut meiner Erinnerung ist das Standardwerk von Kernighan und Ritchie gar nicht schlecht.
Die lehren defensiv also keine Verkomplizierung des Quellcodes
Die lehren defensiv also keine Verkomplizierung des Quellcodes
Es gibt viele Foren und eine Welt ausserhalb
Re: C lernen
Noch ein Hinweis zum K&R: Der ist IIRC nur auf Englisch verfügbar. Das sollte aber für jemanden, der sich mit Computern beschäftigt, kein Problem sein. Für ein Buch dieses „Kleinkalibers“ ist er ziemlich teuer. Fand ich zumindest.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
Re: C lernen
Es gibt das Buch auch auf Deutsch, da heisst es: Programmieren in C. Die deutsche Uebersetzung gibt es AFAIK nur fuer die 2. Edition, die eindeutig zu empfehlen ist, da die 1. Edition noch im Pre-ANSI-Stil ist, der eindeutig veraltet ist.GregorS hat geschrieben:16.10.2024 12:00:04Noch ein Hinweis zum K&R: Der ist IIRC nur auf Englisch verfügbar.
(Edit: tobo war schneller.)
Ein dickes Buch ist nicht unbedingt besser/wertvoller als ein duennes Buch, darum sollte man den Preis nicht mit der Dicke des Buches in Bezug setzen.GregorS hat geschrieben:16.10.2024 12:00:04Für ein Buch dieses „Kleinkalibers“ ist er ziemlich teuer. Fand ich zumindest.
Aber du hast schon recht, dass das Buch durchaus teuer ist, wobei die deutsche Ausgabe mit 32,90 durchaus im Rahmen von Fachbuechern ist.
Use ed once in a while!
Re: C lernen
Ups. Tatsächlich. Nunja, da Englisch kein Problem für mich darstellt, war mir das Original recht.Meillo hat geschrieben:16.10.2024 12:24:47Es gibt das Buch auch auf Deutsch, da heisst es: Programmieren in C. Die deutsche Uebersetzung gibt es AFAIK nur fuer die 2. Edition, die eindeutig zu empfehlen ist, da die 1. Edition noch im Pre-ANSI-Stil ist, der eindeutig veraltet ist.GregorS hat geschrieben:16.10.2024 12:00:04Noch ein Hinweis zum K&R: Der ist IIRC nur auf Englisch verfügbar.
PS: Gerade noch einmal nachgesehen: Das Original kostet knapp 50 €. Wahrscheinlich mussten die Übersetzer dafür bezahlen, das Buch übersetzen zu dürfen
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
Re: C lernen
Habe mir - aufgrund des günstigen Preises - das Buch "C Programmieren für Einsteiger" von Markus Neumann gekauft.
Bin jetzt bei den Kapiteln über Zeiger und dynamische Speicherzuordnung angekommen.
Bis jetzt habe ich in Java programmiert und bin mit Zeigern nicht in Berührung gekommen.
UihJuhiJui das ist aber gefährlich und fehleranfällig.
Geht Euch das genauso, oder sagt Ihr: Nichts normaler als das?
Gruß Christian
Bin jetzt bei den Kapiteln über Zeiger und dynamische Speicherzuordnung angekommen.
Bis jetzt habe ich in Java programmiert und bin mit Zeigern nicht in Berührung gekommen.
UihJuhiJui das ist aber gefährlich und fehleranfällig.
Geht Euch das genauso, oder sagt Ihr: Nichts normaler als das?
Gruß Christian
Re: C lernen
2008 habe ich folgendes geschrieben:homer65 hat geschrieben:17.10.2024 16:15:31Bin jetzt bei den Kapiteln über Zeiger und dynamische Speicherzuordnung angekommen.
Bis jetzt habe ich in Java programmiert und bin mit Zeigern nicht in Berührung gekommen.
UihJuhiJui das ist aber gefährlich und fehleranfällig.
Geht Euch das genauso, oder sagt Ihr: Nichts normaler als das?
Fuer mich waren Zeiger damals also auch ein groesseres Problem. Durch ein Einsteigerbuch habe ich dann verstanden, was sie sind, aber ich konnte damit dann noch nicht programmieren.Ich vor 16 Jahren hat geschrieben: Beim Lernen von Programmiersprachen, bin ich bisher drei Mal an
einen Punkt gekommen, an dem ich ohne fremde Hilfe nur sehr
schwer weitergekommen wäre. Da erste Mal war die Ereignisorien-
tierte Programmierung in VBasic, wo plötzlich nicht mehr alles so
schön sequentiell ablief. Die zweite Hürde war die Objektorien-
tierte Programmierung, wo ich durchaus das Konzept von Klassen
und Objekten verstanden habe, die Umsetzung des Konzepts und
entsprechendes Denken aber lange ein Problem waren. Und dann
waren da noch die Pointer, bei denen ebenfalls die reine
Verständnis nicht das Problem war, wohl aber das Programmieren
mit ihnen (und ihr Sinn).
So richtig verstanden habe ich sie erst als ich ein Programm geschrieben habe, das mit Listen- und Baumstrukturen gearbeitet hat. Wenn man verschiedene Teilmengen der Objekte haben will, wie Suchergebnisse oder sortierte Ansichten, dann lernt man Zeiger zu verstehen.
Heute finde ich Zeiger toll. Zeigerarithmetik, obgleich wegen seinen Konsequenzen fuer die Speicherverwaltung heutzutage kritisch betrachtet, finde ich schlichtweg genial. Wenn man sich tiefer mit den Konzepten der Sprache C befasst, dann landet man immer wieder bei Arrays und Zeigern als den grundlegenden Datenstrukturideen von C. Das Verstaendnis von Zeigern geht Hand in Hand mit dem Verstaendnis der Sprache selbst.
Aber nicht entmutigen lassen, das kommt mit der Zeit dann von alleine. Arbeite einfach in deinen Uebungsprogrammen mit irgendwelchen Listen von Objekten, implementiere eine Lineare Liste, implementiere eine Baumstruktur, und Zeiger werden sich dir erschliessen.
Wir stehen dir gerne zur Seite, wenn du Hilfe brauchst.
Use ed once in a while!
Re: C lernen
Habe direkt Lust bekommen, mich auf meine alten Tage noch ein bisschen tiefer in C einzufuchsen. Gebrauchen kann ich das vielleicht bei der seit ein paar Jahren um den Mikropozessor, konkret Arduino, erweiterten Elektronik-Hobbys. Das Konzept von Abläufen, die durch Hardware- oder Timer-Interrupts gesteuert werden, wobei das als Endlos-Loop ausgeführte Hauptprogramm dann den weniger zeitkritischen Finish beiträgt, leuchtet mir durchaus ein. Aber den Schritt zur Objektorientierung habe ich dennoch nicht kapiert.
Ich habe damals in Pascal den Schritt zur Objektorientierung von Turbo 5.5 bis 7 nicht wirklich nachvollziehen können, vermutlich, weil er mir bei meinen Projekten schlicht gar nix gebracht hat. (Ich mag den Namen "Lazarus" auch heute nicht, vielleicht erst recht nicht, will nicht zu den Fußkranken gehören, die erst mit Göttlicher Hilfe auf die Beine kommen)
Nur getestet: Kompiliert er das noch? OK, braucht aber ein bisschen mehr Speicher - also lass' ich das.
Möglicherweise habe ich jetzt als alter Knochen doch noch eine Möglichkeit, da was nachzuholen, ohne Druck, nur aus sportlichen Gründen, sozusagen.
Da wäre die Frage, ob ein Weg dorthin erst mal über Standard-C gehen könnte, das Werk von R&K wäre vielleicht eine Basis dazu? Habe übrigens geschaut, wozu hat man das Web, was das antiquarisch und in Deutsch kostet: Unter 7 Euro, guter Zustand, heißt es. Also muss man nicht mal'n Fuffi riskieren.
Ich habe damals in Pascal den Schritt zur Objektorientierung von Turbo 5.5 bis 7 nicht wirklich nachvollziehen können, vermutlich, weil er mir bei meinen Projekten schlicht gar nix gebracht hat. (Ich mag den Namen "Lazarus" auch heute nicht, vielleicht erst recht nicht, will nicht zu den Fußkranken gehören, die erst mit Göttlicher Hilfe auf die Beine kommen)
Nur getestet: Kompiliert er das noch? OK, braucht aber ein bisschen mehr Speicher - also lass' ich das.
Möglicherweise habe ich jetzt als alter Knochen doch noch eine Möglichkeit, da was nachzuholen, ohne Druck, nur aus sportlichen Gründen, sozusagen.
Da wäre die Frage, ob ein Weg dorthin erst mal über Standard-C gehen könnte, das Werk von R&K wäre vielleicht eine Basis dazu? Habe übrigens geschaut, wozu hat man das Web, was das antiquarisch und in Deutsch kostet: Unter 7 Euro, guter Zustand, heißt es. Also muss man nicht mal'n Fuffi riskieren.
Re: C lernen
Super!TuxPeter hat geschrieben:17.10.2024 21:33:00Habe direkt Lust bekommen, mich auf meine alten Tage noch ein bisschen tiefer in C einzufuchsen.
Standard-C kann Verschiedenes bedeuten.TuxPeter hat geschrieben:17.10.2024 21:33:00Da wäre die Frage, ob ein Weg dorthin erst mal über Standard-C gehen könnte
Es gibt das K&R-C, das in der ersten Edition des Buchs beschrieben ist. Das ist das wo die Typen der Funktionsargumente zwischen Funktionskopf und Koerper stehen. Das ist veraltet und heute so gut wie gar nicht mehr zu finden -- zurecht, wie ich finde. Es hat keine Vorteile, aber Nachteile.
Dann gibt es ANSI-C aka C89. Also der ANSI-Standard. Der ist in der zweiten Edition des Buchs beschrieben. Er bringt die neuen Funktionsargumenttypennotation, Funktionsprototypen, den Typ void, structs als Funktionsargumente und -returnwerte und dergleichen -- lauter wichtige Verbesserungen. Das ist aus meiner Sicht der gewichtigste C-Standard.
Dann gibt es ISO-C aka C90. Ein ISO-Standard, der so gut wie deckungsgleich mit ANSI-C/C89 ist.
Dann gibt es C99, das ein paar Kleinigkeiten ``modernisiert''. Es haelt ein gewisser C++-Einfluss Einzug. Die relevantesten Aenderungen sind wohl //-Kommentare, Variablendeklarationen im Schleifenkopf und Zuweisung von Struct-Members mit .-Notation. Es gibt zusaetzliche Typen und neue Headerdateien. IMO nichts was man wirklich braucht, aber fuer heutige Programmierer oft Features, die sie erwarten.
Und dann gibt es noch neuerere Standard, die IMO wenig Sinn haben. C ist nunmal alt und kommt aus einer anderen Zeit. Es wird nie eine moderne Sprache werden, da ihr Grunddesign dem widerspricht wie heute neue Sprachen designt werden. Will man ein modernes C, dann waere Go eine Antwort darauf. So zumindest meine Meinung.
Hier mehr Infos zu den C-Standards: https://en.wikipedia.org/wiki/ANSI_C
Ich programmiere fast ausschliesslich ANSI-C und derart ist auch der meiste Code, den ich lese, mit hin und wieder ein bisschen C99 darin, wenn es das Leben deutlich erleichtert. Der GCC funktioniert bei diesen Standards einfach. Man kann zwar explizit einen C-Standard angeben, ist aber nicht noetig. (Btw: Auf jeden Fall sinnvoll ist es, `-Wall' zu setzen.)
Meine Empfehlung ist, sich beim Lernen an ANSI-C/C89 zu orientieren.
Nutzt von euch jemand C11 oder noch einen neueren Standard bewusst? Was sind die Gruende dafuer?
Use ed once in a while!
Re: C lernen
Danke für die Erläuterungen!
Wollte mir gerade das K&R-Buch antiquarisch für ca, 7 € bestellen, aber alle drei Zugänge zu "medimops" möchten eine Kreditkarte. Scheinen sich gegen paypal verschworen zu haben, bieten nicht mal Überweisung per Vorkasse - mögen sie auf ihrem Altpapier sitzen bleiben!! Hat halt nicht sollen sein.
Wollte mir gerade das K&R-Buch antiquarisch für ca, 7 € bestellen, aber alle drei Zugänge zu "medimops" möchten eine Kreditkarte. Scheinen sich gegen paypal verschworen zu haben, bieten nicht mal Überweisung per Vorkasse - mögen sie auf ihrem Altpapier sitzen bleiben!! Hat halt nicht sollen sein.
Re: C lernen
Btw: Manche aelteren Computerbuchklassiker kann man auch als PDFs im Internet finden, wenn man ein bisschen rumsucht. Das kann manchmal praktisch sein, um bei einem Buch, das man auf Papier hat, eine Volltextsuche zu haben.
Was Papierbuecher angeht, kosten die Neuexemplare halt was sie kosten. Gebraucht muss man meist ueber laengere Zeit die Augen offen halten. (Ich habe den Eindruck, dass der Gebrauchtmarkt fuer alte Unix-Buecher nicht mehr so gross und guenstig ist wie er noch vor zehn Jahren war ...) Oder in wissenschaftlichen Bibliotheken schauen, die werden das Buch meist haben.
Was Papierbuecher angeht, kosten die Neuexemplare halt was sie kosten. Gebraucht muss man meist ueber laengere Zeit die Augen offen halten. (Ich habe den Eindruck, dass der Gebrauchtmarkt fuer alte Unix-Buecher nicht mehr so gross und guenstig ist wie er noch vor zehn Jahren war ...) Oder in wissenschaftlichen Bibliotheken schauen, die werden das Buch meist haben.
Use ed once in a while!
Re: C lernen
Hier per Banküberweisung (Vorkasse) ab 9,40€ inkl. VersandTuxPeter hat geschrieben:17.10.2024 23:05:03Danke für die Erläuterungen!
Wollte mir gerade das K&R-Buch antiquarisch für ca, 7 € bestellen, aber alle drei Zugänge zu "medimops" möchten eine Kreditkarte. Scheinen sich gegen paypal verschworen zu haben, bieten nicht mal Überweisung per Vorkasse - mögen sie auf ihrem Altpapier sitzen bleiben!! Hat halt nicht sollen sein.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: C lernen
Danke fuer den Link. Da gibt's derzeit drei Exemplare fuer unter 15,- inkl. Versand, also genug fuer die interessierten User hier.michaa7 hat geschrieben:18.10.2024 02:12:56Hier per Banküberweisung (Vorkasse) ab 9,40€ inkl. Versand
Btw: Diese drei Cover sind alle das exakt gleiche Buch:
https://www.mikrocontroller.net/attachm ... 16/knr.jpg
https://pictures.abebooks.com/inventory ... 505433.jpg
https://www.linux-community.de/wp-conte ... e.png1.jpg
Man kann also auch das Buch mit dem aelteren Cover kaufen ohne dadurch andere Inhalte zu bekommen.
Use ed once in a while!
Re: C lernen
Na denn.
Nun bin ich wirklich nicht drumrumgekommen, es zu bestellen.
Wollen wir evtl. diesen Thread hier nutzen, um erste Eindrücke / Erfahrungen damit auszutauschen?
Nun bin ich wirklich nicht drumrumgekommen, es zu bestellen.
Wollen wir evtl. diesen Thread hier nutzen, um erste Eindrücke / Erfahrungen damit auszutauschen?
Re: C lernen
Von mir aus gerne.TuxPeter hat geschrieben:18.10.2024 10:28:06Wollen wir evtl. diesen Thread hier nutzen, um erste Eindrücke / Erfahrungen damit auszutauschen?
Im Buch gibt es auch allerlei Uebungsaufgaben, ueber die wir reden koennen. Fuer mich waere das ein schoener Anlass, um endlich mal ``The C Answer Book'' zu lesen, das Beispielloesungen zu diesen Aufgaben enthaelt.
Use ed once in a while!