Hallo taugt dieses Buch http://openbook.galileocomputing.de/c_von_a_bis_z/ als Einstieg in C (wenige Grundkenntnisse sind bei mir vorhanden) und für weitere Vertiefung? Habe bisher noch kein C-Buch diesen Umfangs gefunden. Programmieren werde ich unter Linux, das nur neben bei.
Auf jeden Fall! Ist ein super Buch! Sehr gut für Anfänger geeignet und auch als Nachschlagewerk für Profis, weil alles ausführlich erklärt ist. Ich benutze dieses Buch schon seit meinem Studium.
Meine Begeisterung hält sich in Grenzen. Ich habe grad kurz in ein paar Stellen reingestochert: - Das Buch suggiert in 7.1.4, dass "int" immer 32 Bits hat. - Die wichtige Regel, dass ganzzahlige Rechnung immer mit mindestens "int" ausgeführt wird, wird in 7.1 halb vergessen und halb verdreht. Kap. 7.1.1 behauptet frech, eine spezielle Eigenschaft von "char" sei die Erweiterung zu "int". Dass dies für alle Typen kleiner als "int" gilt fehlt völlig, der Leser muss also annehmen, dass "short+short" als "short" gerechnet würde. - Kann "volatile" wirklich universell auf Funktionen angewandt werden um damit deren Optimierung zu verhindern (9.12.3)? Mir wärs neu und auch ein Scan von C99 findet nichts darüber. - Dass man durch 0 nicht dividieren darf, sollte sich rumgesprochen haben. Aber 0 durch irgendwas zu dividieren ist zulässig. Falsch ist also in 6.2.1: "Bitte beachten Sie, dass bei einer Division und bei der Verwendung des Modulo-Operators keine 0 vorkommen darf."
Schau mal nach "C als erste Programmiersprache; Vom Einsteiger zum Fortgeschrittenen" vom Vieweg + Teubner Verlag gibt eine ganz frische neue 7. Auflage; kannst bei Amazon ins Inhaltsverz schauen; die Autoren sind alles Dozenten der automatische Link ist falsch, dieser hier stimmt http://www.amazon.de/gp/reader/3834812218/ref=sib_dp_pt#reader-link
Moins: Ich habe mir während meinem Studium mehrere C-Bücher gekauft. Für den Einstieg in C ist dieses Buch von meiner Seite sehr zuempfehlen. Es hat viele Beispiele, welche den wichtigen Stoff gut vermitteln. Die Details welche A.K aufgelistet hat spielen für den Einstieg keine Rolle. Ich will die Kommentare von A.K nicht alle auseinander nehmen, aber zb zu seiner "Int-Aussage" kann man im Buch ein paar Seiten vorher folgendes lesen: 5.2 Der Datentyp »int« (Integer) "Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768 bis +32767 beschreiben. Mit dem Datentyp int lassen sich nur Ganzzahlen darstellen. Die Abkürzung int steht für Integer. Hier kommen Sie auch gleich mit betriebssystemspezifischen Eigenheiten in Berührung. Auf 16-Bit-Systemen mag das eben Gesagte zutreffen. Dort ist ein Integer (int) auch wirklich zwei Bytes groß. Manch einer wird aber sagen: 16-Bit-Systeme sind doch Schnee von gestern und eigentlich nur noch für MS-DOS- und Windows-3.1-Compiler relevant. Denken Sie aber daran, dass es noch andere Programmierplattformen neben Linux und MS Windows gibt (besonders wären hier die Embedded Systems und Mikrocontroller hervorzuheben), wo C seine Stärken ausspielen kann! ... " Schönes Wik-end
Noch eine Kleinigkeit zum Galileo-Buch: Ich kann darin nirgends eine Beschreibung zum ##-Operator des Präprozessors finden. Ok, der ist für den Anfang vielleicht auch nicht so wichtig. Aber da das Buch fast 1200 Seiten dick ist und ziemlich ausführlich auf Dinge wie CGI- und MySQL- Programmierung eingeht, würde ich schon erwarten, dass das Hauptthema, nämlich C, vollständig abgehandelt wird. Viele Formulierungen und Beschreibungen in dem Buch sind unpräzise, siehe A. K. schrieb: > Meine Begeisterung hält sich in Grenzen. Ich habe grad kurz in ein paar > Stellen reingestochert: Von diesen Ungenauigkeiten gibt es noch viele mehr. Man kann jetzt darüber diskutieren, ob sie für einen Anfänger relevant sind oder nicht. Die Autoren des von von Platinenschwenker vorgeschlagenenen Buchs "C als erste Programmiersprache" haben jedenfalls einen deutlich klareren Schreibstil, ohne deswegen gleich in "Normungssprache" zu verfallen. Deswegen würde auch ich erst einmal dieses Buch in Betracht ziehen (zumal es billiger ist ;-)). Ich habe allerdings keines der beiden Bücher vollständig gelesen, so dass ich diesbezüglich kaum einen fundierten Ratschlag abgeben kann, Zudem gibt es noch viele weitere C-Bücher, die ich ebenfalls nicht kenne. Das einzige C-Buch, das gelesen habe, ist der Kernighan & Ritchie (1. Auflage), und der ist wirklich gut geschrieben (weitgehend vollständig, präzise, knapp und trotzdem gut verständlich). Leider gibt es m.W. immer noch keine 3. Auflage, die den C99-Standard abdeckt.
Yalu X. schrieb: > Das einzige C-Buch, das gelesen habe, ist der Kernighan & Ritchie (1. > Auflage), und der ist wirklich gut geschrieben Die deusche Version? Die solls ja in sich haben. Die Originalversion war jedenfalls als Einstiegslektüre ok. Nur hatten K&R eine deutlich einfachere Aufgabe, die Sprache war effektiv nur halb so gross wie heute. > (weitgehend vollständig, präzise, knapp und trotzdem gut verständlich). Knapp und verständlich ja. Aber da dies gleichzeitig die damalige Sprachreferenz war, wärs besser gewesen, sie wäre nicht ganz so knapp und etwas vollständiger ausgefallen. Es blieb manches offen, was nicht hätte offen bleiben dürfen (z.B. sign vs. value preserving conversions).
Yalu X. schrieb: > Das einzige C-Buch, das gelesen habe, ist der Kernighan & Ritchie (1. > Auflage), und der ist wirklich gut geschrieben (weitgehend vollständig, > präzise, knapp und trotzdem gut verständlich). Du meinst ganz sicher die zweite Ausgabe. Die erste ist eher unbrauchbar, vor allem in der sehr merkwürdigen deutschen Übersetzung. Außerdem beschreibt sie nur das "K&R"-C, das keine Typdeklarationen in Funktionsprototypen kennt. Die zweite Ausgabe beschreibt C89 ("ANSI-C"). Die ist auch in der deutschen Übersetzung exzellent. Ja, eine dritte Ausgabe mit C99 fehlt eindeutig.
A. K. schrieb: > Die deusche Version? Die solls ja in sich haben. Rufus Τ. Firefly schrieb: > Du meinst ganz sicher die zweite Ausgabe. Die erste ist eher > unbrauchbar, vor allem in der sehr merkwürdigen deutschen Übersetzung. Ja, es war tatsächlich die erste auf Deutsch :) Sie las sich vor allem deswegen etwas holprig, weil zusammengesetzte Substantive grundsätzlich getrennt geschrieben wurden (graus). Ansonsten war die Übersetzung aber schon in Ordnung, und im Buchladen gab es die Originalversion damals nicht. > Nur hatten K&R eine deutlich einfachere Aufgabe, die Sprache war > effektiv nur halb so gross wie heute. Klar, deswegen erwarte ich von einem aktuellen C-Buch auch nicht, dass es ebenfalls nur 200 Seiten dünn ist. Die zweite (deutsche) Auflage hatte schon 300 Seiten, da könnte die dritte in etwa 400—500 Seiten passen. Den C99-Standard zu beschreiben ist auch nicht schwieriger, sondern nur mehr Arbeit für den Autor. > Aber da dies gleichzeitig die damalige Sprachreferenz war, wärs besser > gewesen, sie wäre nicht ganz so knapp und etwas vollständiger > ausgefallen. Ok, ich nehme das "weitgehend vollständig" zurück. Aber gerade weil es die Sprachreferenz war, war es letztendlich per definitionem doch wieder "vollständig". Auch im heutigen Standard gibt es viele Aspekte, die nicht eindeutig definiert sind. Der Fortschritt im Vergleich zu damals liegt allerdings darin, dass inzwischen die meisten dieser Aspekte explizit als "undefined" oder "implementation defined" gekennzeichnet sind. > Außerdem beschreibt sie nur das "K&R"-C, das keine Typdeklarationen in > Funktionsprototypen kennt. Der K&R-1 sollte natürlich keine Empfehlung für heute sein, sondern nur ein Beispiel, wie ein C-Buch prinzipiell geschrieben sein sollte. Den damaligen (noch wackeligen) Stand der Sprache hat das Buch jedenfalls so gut beschrieben, dass ich mich schon nach zwei Tagen in C wie zu Hause fühlte. Mit einem K&R-3 könnte man ein entsprechendes Erfolgserlebnis vielleicht nach einer knappen Woche verspüren. Wegen des größeren Sprachumfangs wäre es aber sinnvoll, das Buch in drei Teile zu teilen: Im ersten Teil (ca. 200 Seiten) würde die Sprache und einige ausgewählte Funktionen der Standardbibliothek in groben Zügen so weit erklärt, dass der Leser in der Lage ist, eigene Programme zu schreiben. Der zweite Teil (50—100 Seiten) würde Details und mögliche Fallstricke beschreiben, also Dinge wie Promotionen, volatile und restricted Variablen, Portabilitätsaspekte usw. Der dritte Teil wäre eine Referenz der Standardbibliothek und muss nicht mehr lehrbuchartig gechrieben sein, da der Leser inzwischen die Sprache schon halbwegs beherrscht. > Die zweite Ausgabe beschreibt C89 ("ANSI-C"). Die ist auch in der > deutschen Übersetzung exzellent. Der K&R-2 kann auch heute noch gut als Lehrbuch verwendet werden. Über die C99-Erweiterungen, die bisher sowieso kaum jemand nutzt (außer den Zeilenkommentaren ;-)), kann man sich auch nachträglich noch im Web oder direkt im Standarddokument informieren.
cproger schrieb: > Die Details welche A.K aufgelistet hat spielen für den Einstieg keine > Rolle. Einem Einsteiger muß man nicht unbedingt jedes Detail erklären, aber wenn man es schon erklärt, muß das auch stimmen, gerade im Hinblick auf: > Denken Sie aber daran, dass es noch andere Programmierplattformen neben > Linux und MS Windows gibt (besonders wären hier die Embedded Systems und > Mikrocontroller hervorzuheben), wo C seine Stärken ausspielen kann! ... " Das Motto "es sind ja nur Einsteiger, da macht es nichts, wenn man denen was falsches hinschreibt, damit sie es leichter verstehen" ist in meinen Augen kein sehr gutes und sagt schon einiges über die Qualität eines Buchs aus. > Ich will die Kommentare von A.K nicht alle auseinander nehmen, > aber zb zu seiner "Int-Aussage" kann man im Buch ein paar Seiten vorher > folgendes lesen: > > 5.2 Der Datentyp »int« (Integer) > "Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei > Byte aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von > -32768 bis +32767 beschreiben. Schon diesese beiden Sätze sind streng genommen falsch. Wieviele Bytes ein int groß ist, ist in ANSI C nicht festeglegt und kann auch 1 sein, und der minimale Wertebereich ist -32767 bis +32767. (Und ja, das bedeutet tatsächlich, daß nach ANSI C ein Byte z.B. auch 16 Bit breit sein darf)
Viele bekannte Mängel im Buch wurden schon vor Jahren im Usenet diskutiert und auch dem Autor mitgeteilt. Leider sah er es bis heute noch nicht für notwendig, diese Mängel zu beseitigen. Außer den hier schon angesprochenen Mängeln, befinden sich in der aktuellen Auflage unter anderem folgende: http://www.pro-linux.de/news/1/14800/comm/1/show-all-comments.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.