Diskussion:C-Programmierung: Archiv 2004

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Aus Wikibooks

Kapitel zu Variablen[Bearbeiten]

Ich hab das Kapitel Variablen mal etwas nach hinten verschoben. Ich will den Anfänger nicht gleich mit Strukturen, Unions, Casts usw. überfordern. Eine kurze Einführen was Variablen überhaupt sind und den Unterschied zwischen Flieskommzahlen und einem Integer sollte für den Anfang genügen. Zunächst sollte den Anfänger in den Kapiteln Einfache Ein- und Ausgabe, Kontrollstrukturen und Funktionen aber erst ein paar praktische Beispiele kennen lernen. -- Daniel B 16:30, 2. Aug 2004 (UTC)

Strukturen und Unions hätten sowieso zu C-Programmierung: Komplexe Datentypen gehört. --Stefan Kögl 16:36, 2. Aug 2004 (UTC)

Ah, gut. Das war mir nicht bewusst. Hab die Änderung wieder Rückgängig gemacht. Ich gehe davon aus, dass in diesem Kapitel nur einfache Typen wie char, int, float und double behandelt werden. -- Daniel B 16:51, 2. Aug 2004 (UTC)

Organisatorisches zum C-Buch[Bearbeiten]

Ich bin der Meinung, dass das C-Buch auf dem besten Weg ist, ein eigenes Buch zu werden und ich finde, wir sollten es aus dem Programmierung-Buch herausnehmen. Damit könnten die Kapitel dann auch C-Programmierung: Kapitelname heißen.

Das war mir gar nicht bewusst, dass dieses Buch eine Untermenge des Buchs Programmierens darstellt. Könntest du bitte die Kapitel verschieben? Danke -- Daniel B 20:19, 15. Aug 2004 (UTC)
Ich würde es nicht verschieben. Das vorangestellte Programmierung: ist ja in diesem Fall eher eine Art Namensraum. Das waere ja vielleicht sogar mal eine eigene Diskussion wert ;) --Moolsan 08:46, 16. Aug 2004 (UTC)
Zum Kategorisieren gibts die Regale, also brauchen wir doch keine Namensräume. --Stefan Kögl 10:10, 16. Aug 2004 (UTC)
Auch wieder wahr ... Dem kann ich nichts mehr entgegensetzen :) --Moolsan 11:10, 16. Aug 2004 (UTC)
Schon geschehen; Programmierung:C (und alle Unterseiten) wurden nach C-Programmierung: verschoben --Stefan Kögl 13:09, 16. Aug 2004 (UTC)
Hab's schon gesehen. Ich bin auch gerade dabei die unnötigen Redirects zu löschen. Die Seiten die ich bisher noch nicht gelöscht habe werden noch auf anderen existierenden Seiten verlinkt. --Moolsan 13:12, 16. Aug 2004 (UTC)
Was hast du schon gelöscht? [1] zeigt die Seiten alle noch als existierend (also mit blauem Link) an. --Stefan Kögl 14:10, 16. Aug 2004 (UTC)
Siehe Wikibooks:Lösch-Logbuch. Ich weiss auch nicht warum die noch nicht rot markiert sind. Aber Inhalt haben sie keinen mehr ... --Moolsan 15:23, 16. Aug 2004 (UTC)
Vielleicht bleiben die Seiten erhalten, damit man die früheren Versionen wiederherstellen kann. Ist ja auch egal, oder? --Stefan Kögl 15:47, 16. Aug 2004 (UTC)
JA, grundsätzlich ist das so. Aber ich denke nach einer gewissen Zeitspanne werden die Links dann wieder rot dargestellt. Wir werden's ja sehen, und im Grunde ist es ja auch wirklich egal. Gruss --Moolsan 16:12, 16. Aug 2004 (UTC)
Ich bin im Moment dabei C mit dem Buch zu lernen. Eine sehr sinnvolle Ergaenzung waeren meiner Meinung nach Uebungsaufgaben.

-- samdelin 17:55, 19. Sep 2006 (CEST)

Einordnung der Kapitel "Kompilierung" und "Ausdrücke und Operatoren"[Bearbeiten]

Warum sind die Kapitel "Kompilierung" und "Ausdrücke und Operatoren" unter Einstieg eingeordnet. Währe es nicht besser diese unter "Referenzen" einzuordnen? -- Daniel B 18:11, 30. Aug 2004 (UTC)

Kompilierung sollte imho schon bleiben wo es ist. Den Operatoren-Teil des Artikels "Ausdrücke und Operatoren" könnte man eigentlich auch als Referenz einordnen. Dann sollte man aber die "Liste der Operatoren nach Priorität" in einen eigenen Artikel ausgliedern. --Stefan Kögl 20:18, 30. Aug 2004 (UTC)
Ist mir irgendwie immer noch nicht ganz klar, was der Teil Kompilierung hier macht. Er steht jetzt irgendwo zwischen Funktionen und Zeigern. Der Anfänger wird vermutlich noch vor dem Hello World Programm wissen wollen, wie er das Programm übersetzt bekommt. Ich hätte ihn für diesen Fall auf die Referenz verwiesen. -- Daniel B 19:41, 31. Aug 2004 (UTC)
Eine kurze Aneleitung zum Übersetzen des Programms möchte ich eigentlich noch bei den Grundlagen unterbringen. Das Kapitel Kompilierung war für eine grobe Beschreibung des Übersetzungsvorgangs und für ein paar Informationen zum Stack-Prinzip gedacht... und sollte, wenn ichs mir recht überlege zu den fortgeschrittenen Themen verschoben werden. OK? --Stefan Kögl 21:13, 31. Aug 2004 (UTC)
Vielleicht steh ich grad auf dem Schlauch. Aber was meinst du mit Stackprinzip? Ich kenne zwar den Stack als Datenstruktur bzw. bei Aufruf von Funktionen. Mir ist aber gerade nicht ganz klar, in welchem Zusammenhang dies mit dem Compiler stehen soll. -- Daniel B 17:34, 2. Sep 2004 (UTC)
Ich meinte damit, dass der Compiler dafür zu sorgen hat, dass bei einem Funktionsaufruf auf dem Stack ua Rücksprungadresse und Variablen im Funktions-Scope abgelegt werden. --Stefan Kögl 21:01, 2. Sep 2004 (UTC)
Für die grundlegende Verständnis von Linker, Compiler und Präprozessor finde ich das Stackprinzip eigentlich nicht wichtig. Eine wesentliche Bedeutung kommt ihm dagegen bei der Rekursion zu. Dort währe meiner Meinung eine Erklärung des Stacks und seiner Bedeutung beim Funktionsaufruf wesentlich besser aufgehoben. -- Daniel B 15:04, 3. Sep 2004 (UTC)
OK, dann bringen wir das dort unter. --Stefan Kögl 15:50, 3. Sep 2004 (UTC)
Das Kapitel Compiler also nun in die Referenz? -- Daniel B 16:02, 3. Sep 2004 (UTC)
Wenn wir bei den Grundlagen kurz erklären wie man sein Programm übersetzt, ja! --Stefan Kögl 16:32, 3. Sep 2004 (UTC)
Es währe auch möglich, dass Kapitel weiter nach vorne zu verschieben. Zwischen Verwendete Formatierung und Grundlagen könnte ich es mir auch gut vorstellen. -- Daniel B 16:47, 3. Sep 2004 (UTC)
Ich denke so ein umfangreiches und kompliziertes Kapitel am Anfang würde den Anfänger überfordern/abschrecken... Ich wäre für eine kurze Einleitung bei den Grundlagen und dem Rest als Referenz. --Stefan Kögl 18:20, 3. Sep 2004 (UTC)
Ich hab das mal im Kapitel Grundlagen versucht. Ist das in Ordnung? -- Daniel B 19:11, 3. Sep 2004 (UTC)
Also ich finds gut... --Stefan Kögl 20:06, 3. Sep 2004 (UTC)

Cast oder Casting[Bearbeiten]

Ich habe die Änderungen von P. Favor wieder rückgängig gemacht und "Cast" zu "Casting" geändert, weil ich der Meinung bin, dass das am ehesten dem Wort Typumwandlung entspricht. --Stefan Kögl 22:07, 30. Aug 2004 (UTC)

Suche in de.comp.lang.c ergibt: "casting": 169 Einträge, "cast": 1960 Einträge. Ich habe es deshalb wieder auf "Cast" geändert. --P. Favor 21:00, 16. Okt 2004 (UTC)
Nur weil ich die Disku grade überfliege ... cast gefällt mir ebenfalls besser, im beruflichen Alltag habe ich noch nie von casting, immer nur von cast gehört. Casting erinnert mich irgendwie auch zu sehr an eine Probevorstellung für Schauspieler und Sänger ;-). --Mkleine 21:04, 24. Jan 2005 (UTC)
Genau! :) Die vielen Casting-Shows und Casting-Bands haben zweifellos ihre Spuren in der deutschen Sprachwelt hinterlassen ... Übrigens ist cast nur eine bestimmte Art der Typumwandlung -> deshalb ganz raus mit dem Wort aus dem Inhaltsverzeichnis! --80.136.72.116 20:39, 25. Jun 2005 (UTC)

Grundsätzlicher Aufbau[Bearbeiten]

Ich habe ein bisschen hier im Buch gelesen und ich finde den Aufbau nicht ganz gelungen, weil zuviele Dinge eingeführt werden, die nicht erklärt sind. zB wird eine formatierte Ausgabe verwendet, die ein Anfänger nicht verstehen kann.

Meiner Meinung nach sollte man grundsätzliche Sachen zuerst klären:

  • Was sind die Schritte, um ein Programm zu erhalten und was geschieht jeweils?
    • Präprozessor
    • Compiler
    • Linker.
  • Wie ist ein Programm generell aufgebaut und wie läuft es ab?
    • imperative Programmiersprache
    • Funktionen, Einstiegspunkt bei main()
    • Funktionsaufruf, Kontrollstrukturen erwähnen
    • Was sind Headerdateien (informell)

Dann kann man mit realen Beispielen anfangen (ohne Pointer, also auch kein scanf())

  • Grundlagen
    • Quellcode-Formatierung
    • Ausdrücke
    • Anweisungen
    • Variablen + Basistypen, Gültigkeitsbereich.
    • Kontrollstrukturen
    • Funktionsaufrufe + Rückgabewerte
    • was passiert bei Parameterübergabe (Kopie!)
    • nochmal: genaue Funktion von Headerdateien

Ist das geschafft, ist der Weg frei, um sich schwierigeren Aufgaben zu widmen. --Sgop 22:35, 26. Sep 2004 (UTC)


Meiner Meinung nach sollte man grundsätzliche Sachen zuerst klären:

  • Was sind die Schritte, um ein Programm zu erhalten und was geschieht jeweils?
    • Präprozessor
    • Compiler
    • Linker.

Gute Idee. Ich denke das Kapitel Der Compiler sollte entsprechend erweitert werden.

  • Wie ist ein Programm generell aufgebaut und wie läuft es ab?
    • imperative Programmiersprache

Ein Verweis auf Programmieren im Vorwort (fehlt noch) dürfte hier ausreichend sein.

    • Funktionen, Einstiegspunkt bei main()

Hab ich mal entsprechend erweitert. Sollte nun eigentlich klar sein.

    • Funktionsaufruf, Kontrollstrukturen erwähnen

Wie ein Funktion aufgerufen wird dürfte am Beispiel von printf klar genug dargestellt sein. Mehr über Funktionen und Kontrollstrukturen sollte dann erst im entsprechenden Kapitel stehen. Bis zu diesem Zeitpunkt werden Funktionen ja ausschließlich aufgerufen.
Warum sollen Kontrollstrukturen bereits jetzt erwähnt werden? Ich denke man sollte den Anfänger nicht noch mit zusätzlichem Begriffen und Beispielen irritieren.

    • Was sind Headerdateien (informell)

Wird zugegeben nur kurz erwähnt. Ich denke es reicht aus, die Headerdatei dann erste wieder bei den Prototypen und beim Präprozessor zu erwähnen.

    • Dann kann man mit realen Beispielen anfangen (ohne Pointer, also auch kein scanf())

scanf erst bei Pointer einzuführen halte ich für überhaupt keine gute Idee. Dies aus zwei Gründen:

  • Ohne scanf werden die Beispiele sehr theoretisch. Beispiele die auch nur ein wenig einen praktischen Nutzen haben können dann nicht verwendet werden.
  • Bei & handelt es sich um einen Operator und keinen Pointervariable. Die Erklärung, dass der & - Operator die Adresse der Variable liefert und diese an scanf übergeben werden dürfte auch Anfänger nicht überfordern. (eventuell müsste aber noch genauer erklärt werden, was man unter Adresse der Variable gemeint ist).
  • Grundlagen
    • Quellcode-Formatierung

Könnte in der Tat noch in den Grundlagen Erwähnung finden.

    • Ausdrücke
    • Anweisungen

ich denke es reicht, wenn die Begriff ehr beiläufig eingeführt werden.

    • Variablen + Basistypen, Gültigkeitsbereich.

Wird im Kapitel Variablen ausführlich erklärt.

    • Kontrollstrukturen

Welchen Sinn macht es, diese bereits in den Grundlagen einzuführen?

    • Funktionsaufrufe + Rückgabewerte
    • was passiert bei Parameterübergabe (Kopie!)
    • nochmal: genaue Funktion von Headerdateien

Auf diese Bereiche wird später alle nochmals detailiert eingegangen.

Allgemein halte ich es nicht für sinnvoll C wie an einer Perlenschnur zu erklären. Es werden irgendwo immer Fragen auftauchen, die erst später geklärt werden können. Auch dies sollte noch entsprechend im Vorwort erwähnt werden. -- Daniel B 19:20, 27. Sep 2004 (UTC)