Diskussion:C-Programmierung: Grundlagen
Aus Wikibooks
Die Escape-Sequenzen gehören imho zur Ein- und Ausgabe, ich verschieb sie dorthin. --Stefan Kögl 16:11, 2. Aug 2004 (UTC)
Weil es wieder mal ausgebessert wurde: Die Funktionen der Standard C-Bibliotheken sind _kein_ Bestandteil von C, sondern Bestandteil der Bibliotheken. --Stefan Kögl 09:47, 30. Aug 2004 (UTC)
- Vollkommen richtig. Jetzt habe ich auch endlich, endlich, endlich die Stelle in Kernighan & Ritchie „Programmieren in C“ gefunden. Ich zitiert Seite 11:
Übrigends ist printf nicht Teil der Programmiersprache C; in C selbst ist Eingabe oder Ausgabe nicht definiert. Bei printf handelt es sich nur um eine nützliche Funktion aus der Bibliothek, die normalerweise für C-Programme zur Verfügung steht. -- Daniel B 18:50, 9. Sep 2004 (UTC)
Inhaltsverzeichnis |
[Bearbeiten] Compiler mit eigenem Editor = IDE?
> Einige Compiler verfügen über einen eigenen Editor, in dem Sie den Quellcode [...]
Meinst du damit IDEs oder gibt es Programme, die sich als Compiler bezeichnen und über einen integrierten Editor verfügen? --Stefan Kögl 20:37, 3. Sep 2004 (UTC)
- Ist das so besser formuliert? -- Daniel B 07:04, 4. Sep 2004 (UTC)
-
- Mit der Einleitung 'Vereinfacht gesagt, ...' und dem Ziel einem Anfänger schnellen Einstieg in die Sprache zu geben, würde ich es stehen lassen.
- Jedoch gibt es neben dem Compiler auch andere Tools, wie Linker, Library-Archiver, Debugger, Profiler etc. bis hin zum Pretty-Printer und auch das wichtige Tool eines Editors oder des Hilfe-Browsers. Die Bezeichnung IDE (Integrated Developer Environment) bezeichnet eine Umgebung (Environment), die diese Tools unter einer Bedienoberfläche (GUI) so zusammenfasst (integriert), dass günstigstenfalls alle an der Entwicklung (Development) beteiligten Tools von ihr aus bedient werden können und Datenaustausch sowie Quelltext-Markierungen anhand von Rückgaben einzelner Tools direkt in der IDE geschehen kann. Man also keine Einzelaufruf der Tools zwingend durchführen muss... aber kann. Auch MS Visual C .Net kann aus dem MS Enterprise Architect per Command Line Interpreter bedient werden und dies ist bei automatisierten Skripten sinnvoll. Obwohl ja gerade die für Mausklicks und Fenster bekannt sind.
- Natürlich trägt bei einigen Herstellern die Produktbezeichnung irreführend das 'Compiler' mit im Namen. Ein Compiler ist enthalten, aber auch eine Menge anderer Tools. Aber das liegt wohl daran, dass meist kein Debugger, Library-Archiver oder ein Hilfe-System einzeln verkauft wird und es sich eingebürgert hat, die Tools Compiler und Interpreter als besonders wichtig hervorzuheben.
- So wie es jetzt dasteht, ist es noch nicht wirklich richtig. Aber muss die Zielgruppe, die C erlernen will es wirklich genau wissen? --Oliver Merkel 08:57, 4. Sep 2004 (UTC)
- Vielleicht ist die folgende Formulierung besser:
Viele Compiler sind Bestandteil einer integrierte Entwicklungsumgebungen - oder kurz IDE ( aus dem Englischen Integrated Design Environment oder Integrated Development Environment) – die neben dem Compiler auch über einen integrierten Editor verfügen.
Aber für bessere Vorschläge bin ich immer offen.
- Vielleicht ist die folgende Formulierung besser:
[Bearbeiten] Links am Anfang
Wäre es nicht besser dort auf die Wikipedia zu verweisen, als innerhalb Wikibooks? Man würde ja nicht ein Buch erwarten sondern nur eine Definition:
... Für die Entwicklung des Betriebsystems UNIX entschied sich deshalb Ken Thompson zunächst dieses in FORTRAN zu programmieren ... lg --Just-Ben 19:17, 30. Okt 2004 (UTC)
[Bearbeiten] C für Narren
Du gehst gleich in Medias res. Ist aber falsch. Es gibt auch leute die nix wissen. Also: erklär kurz was ein Editor ist (seufz). Erklär wie man ihn aufruft. Erklär wie man abspeichert. Erklär wie man kompiliert. Dann erklär wie man Hello World schreibt.
Schreib auch: wer weiß was ein Editor ist, der liest bitte auf Seite / Abschnitt xyz weiter. 172.176.152.140
- Im vorherigen Kapitel steht: "Allerdings sollten Sie den Umgang mit ihrem Betriebssystem sicher beherrschen,...". Dazu gehört auch der Umgang mit einem Editor. IMO ist es keine Aufgabe einer Einführung in eine Programmiersprache zu erklären wie ein Editor funktioniert. Dies währe auch eine fast unlösbare Aufgabe bei der Verbreitung von C und damit verbunden Anzahl von Editoren.
- Zur Übersetzung mit dem Compiler: Hier wird im Abschnitt "Compiler" auf die Referenz verwiesen (noch vor dem "Hello World" Programm!). Das Kapitel soll in Zukunft dazu dienen zumindest für die wichtigsten Compiler eine Kurzanleitung zu bieten. Und wen sonst noch was fehlt: Jeder ist aufgerufen das Buch zu verbessern oder zu ergänzen. -- Daniel B 21:03, 15. Jun 2005 (UTC)
[Bearbeiten] Komentare im Quelltext
Wie problematisch ist eigentlich der einsatz von // ? Beispiel: Ich schreib unter nem Unix derivat ein Programm. Dann nehme ich den Quelltext begebe mich damit in eine (MS-)DOS/Windows umgebung und will das File Compilieren.
- Unixes benutz glaub ich nur LF um das ende einer Zeile zu markieren.
- MS-Systeme verwenden CR und LF um das ende einer Zeile anzuzeigen.
Die unter Linux erstellte Quelldatei hat also nur LFs im ASCII-Code gespeichert. Somit würde ein Windows/DOS Programm das Zeilenende nicht richtig erkennen. Verwende ich nun // irgendwo im Text müsste der Präcompiler eigentlich alles danach bis zum Fileende als Kommentar ausklammern. Oder irre ich mir mit dieser These?
Wenn es stimmt sollte von der Verwendung von // abgeraten werden. -- LeiD -- 7. Nov. 2005
- Der C Standard kennt keinen ASCII Code. C ist nicht auf einen speziellen Zeichensatz ausgelegt. Deshalb ist das Problem nicht ein C Problem, sondern vielmehr des Betriebssystems und des Compilers. -- Daniel B 18:59, 7. Nov 2005 (UTC)
[Bearbeiten] Weitere Kommentare zu diesem Abschnitt des Buches
Dank des Bibliothekskonzeptes ist es auch möglich, die eigenen Programme über viele Dateien verteilt (also thematisch "sortiert") zu implementieren, denn im Prinzip ist es dem Compiler egal, woher er den Quellcode bekommt, er muss nur zum richtigen Zeitpunkt zur Verfügung stehen. - Hmm... Soweit ich weiß, erstellt der Linker die Bibliotheken aus den kompilierten Objektdateien. Inwiefern hat also der Quellcode in den einzelnen .c-Dateien etwas mit dem Bibliothekskonzept zu tun?
Es wurde für die Sprache C sogar der Begriff des Hochsprachen-Assemblers in Umlauf gebracht, denn vieles, was man früher in Assembler programmieren musste, ist durchaus in C programmierbar. - Die Begründung, daß C auch als Hochsprachen-Assembler gesehen wird, ist meines Erachtens, daß C, im Gegensatz zu anderen (Hoch-)Sprachen, sehr maschinennah ist.
Historisch gesehen kommt zwischen Compiler und Linker noch der Assembler. - Historisch? Verwendet der GCC denn nicht einen Assembler?
Der Präprozessor funktioniert im Grunde wie die "Suchen und Ersetzen"-Funktion eines Textverarbeitungsprogramms. Er bearbeitet lediglich den Quelltext - Könnte man mißverstehen: Er bearbeitet (d.i. verändert) meine Quelltextdateien.
Oftmals stößt er allerdings auch das eigentliche Übersetzen und Linken (auch als "Binden" bezeichnet) an. - Der Präprozessor stößt das Linken an? Versteh ich nicht... Was heißt das?
Wenn Sie ein Textverarbeitungsprogramm anstelle eines Editors verwenden, müssen Sie allerdings darauf achten, dass Sie den Quellcode im Textformat ohne Steuerzeichen abspeichern - Jetzt könnte man fragen: Welches Textformat? utf8 latin1 usw.
Über die Anweisung return wird ein Wert an die übergeordnete Funktion weitergegeben. - Was ist eine "übergeordnete Funktion"? Das versteht kein Laie. Besser wäre es einfach zu sagen, daß eine Funktion einen Wert zurückgibt...
--Thomas-Chris 16:54, 30. Jul 2005 (UTC)
- Dank des Bibliothekskonzeptes ist es auch möglich, die eigenen Programme über viele Dateien verteilt (also thematisch "sortiert") zu implementieren, denn im Prinzip ist es dem Compiler egal, woher er den Quellcode bekommt, er muss nur zum richtigen Zeitpunkt zur Verfügung stehen. Was der Absatz aussagen solle ist mir nicht ganz klar (stammt auch nicht von mir).
- Es wurde für die Sprache C sogar der Begriff des Hochsprachen-Assemblers in Umlauf gebracht, denn vieles, was man früher in Assembler programmieren musste, ist durchaus in C programmierbar. Soweit ich weiß, wurden früher beispielsweise Betriebssysteme in Assembler programmiert wohingegen sie heute in C programmiert werden. Insofern dürfte die Aussage schon richtig sein, aber ich kann mich auch täuschen.
- Historisch gesehen kommt zwischen Compiler und Linker noch der Assembler. Hab das mal entsprechend abgeändert
- Der Präprozessor funktioniert im Grunde wie die "Suchen und Ersetzen"-Funktion eines Textverarbeitungsprogramms. Er bearbeitet lediglich den Quelltext. Könnte man natürlich missverstehen. Verbesserungsvorschläge?
- Oftmals stößt er allerdings auch das eigentliche Übersetzen und Linken (auch als "Binden" bezeichnet) an. Verstehe ich auch nicht. Hab den Satz entfernt.
- Wenn Sie ein Textverarbeitungsprogramm anstelle eines Editors verwenden, müssen Sie allerdings darauf achten, dass Sie den Quellcode im Textformat ohne Steuerzeichen abspeichern. Damit sollte eigentlich deutlich werden, dass beispielsweise in Word die Datei nicht als Word-Dokument abgespeichert werden soll. Fällt mir jetzt gerade keine besser Formulierung ein.
- Über die Anweisung return wird ein Wert an die übergeordnete Funktion weitergegeben. Hab ich entsprechend geändert. -- Daniel B 08:01, 31. Jul 2005 (UTC)
-
- Habe zu diesen Themen ein paar Änderungen durchgeführt. --Thomas-Chris 21:49, 31. Jul 2005 (UTC)