Gruß, ALF
K&R2 ist fuer "hab schon programmiert"-er genau das richtige. Ansonsten
kann man fast nur emfehlen immer wieder hierher zurueckzukehren und
mitzulesen und mitzudiskutieren.
--
Z (Zoran....@daimlerchrysler.com)
"LISP is worth learning for the profound enlightenment experience
you will have when you finally get it; that experience will make you
a better programmer for the rest of your days." -- Eric S. Raymond
> Was an nicht zu akademischer Literatur könnt ihr mir empfehlen?
ich habe den Einstig in C mit dem Buch 'Programmieren in C' von Helmut
Erlenkötter gefunden. Ist im rororo-Verlag erschienen und kostet 10
EUR. Ich selber habe vorher in Cobol (beruflich) und VB (privat)
prgrammiert, und bin ganz gut damit zurecht gekommen. Fängt halt ganz
vorne an mit dem, immer wieder beliebten, 'Hallo Welt' und geht auch
nicht zusehr in die Tiefe, verschafft aber eine ausreichende
Einführung, um für sich zu entscheiden, ob man mit C weiter machen
will, oder nicht. Online wäre www.pronix.de zu empfehlen.
> Gruß, ALF
Gruß Matthias
K&R wurde eh schon erwähnt, und ich kann mich dem nur
anschließen. Möchte aber als Begleitlektüre "C Programming Notes.
Notes to Accompany The C Programming Language, by Kernighan and
Ritchie" von Steve Summit empfehlen. (online irgendwo unter
http://www.eskimo.com/~scs/ zu finden).
> Online wäre www.pronix.de zu empfehlen.
IMHO: Nein. Ich weiß zwar nicht, ob Code und Erklärungen
fachliche Fehler beinhalten, aber dieser C-Kurs ist mir
sprachlich zu holprig. Sowas will ich nicht lesen.
Außerdem kann sich der Autor anscheinend nicht entscheiden,
welches C er präsentieren will: Im Inhaltsverzeichnis nennt er
als Titel "C-Programmierung (ANSI C)", in Kapitel 1.6 ("C in
diesem Buch") meint der dann, er würde sich nicht ausschließlich
mit ANSI C befassen, sondern auch Plattformspezifika verwenden,
und im Text selbst findet man häufig Verweise auf C99 oder
Unterschiede zu C++ (wenn schon sowas, dann bitte als
eigenständiges Kapitel im Anhang).
Darüber hinaus finde ich den Aufbau des Kurses ungeschickt:
scanf() wird noch vor printf() erklärt, noch bevor Arrays
behandelt werden, werden Funktionen und der Präprozessor
vorgestellt.
Was mir noch so aufgefallen ist:
* Kapitel 5.1: Wann sind Kommentare sinnvoll?
| Eigentlich immer. [...] Hierzu ein Beispiel:
| #include <stdio.h>
|
| int main () //Beginn des Hauptprogramms
| {
| int i = 10; //Variable int mit dem Namen i und Wert 10
| printf("%d",i);//gibt die Zahl 10 aus
| printf("\n"); //springt eine Zeile weiter
| printf("10"); //gibt ebenfalls 10 aus
|
| return 0;
|
| /*Hier sehen sie noch eine 2. Möglichkeit Kommentare
| einzufügen. Diese Kommentare werden mittels '/'
| und'*' geöffnet und mit '*' und '/' geschlossen */
| }
[Anmerkung: Obiges Fragment ist _nicht_ als schlechtes Beispiel
angegeben].
* Kapitel 17.2:
| Das Casten der Funktion malloc() ist laut ANSI C Standard
| nicht nötig und kann auch weggelassen werden. ANSI C++
| schreibt allerdings ein Casten des Typen void* vor. Da es
| aber kaum noch reine C Compiler gibt, wurde und wird in
| den Beispielen das Typencasting durchgeführt.
* Kapitel 17.5: Speicher vom Stack anfordern mit alloca()
Johannes
Wenn ich das teilweise durch habe melde ich mich nochmal.
BTW, was ist der Unterschied zwischen ANSI-C und ISO-C?
Gruß, ALF
ANSI ist das nationale USA-Normungsgremium.
> BTW, was ist der Unterschied zwischen ANSI-C und ISO-C?
Mit ANSI-C wird gemeinhin der "alte" Standard ISO/IEC 9899:1990, mit
ISO-C der aktuelle ISO/IEC 9899:1999 bezeichnet. Die einzelnen
Unterschiede kannst Du in Letzterem im Vorwort in Abschnitt 5 nachlesen
(Umfang ca. 2 Seiten).
Gruß. Claus
Sorry Rainer, aber das beantwortet ja wohl nicht die Frage. ANSI ist ja
auch nicht ANSI-C und ISO ist schliesslich nicht ISO-C.
Der Unterschied zwischen ANSI-C und ISO-C allerdings keiner (ausser der
Formatierung und Kapitelnummerierung), inhaltlich beschreiben die beiden
die gleiche Sprache.
Zoran bezog sich auf den ANSI-Standard von 1989, der die Grundlage fuer
den folgenden ISO-Standard von 1990 war. ISO hat damals den
ANSI-Standard ziemlich wortgenau uebernommen und eben die Kapitel anders
numeriert. (Ausserdem hat ISO lauter "this international standard" statt
"this standard" reingewuerfelt, ein anderes Vorwort dazugepackt usw.)
> "Mein" ANSI-C Strandard ist betitelt mit ISO/IEC 9899 ... processed and
> adopted by ASC ... approved by ANSI.
> Ich bin deswegen eigentlich davon ausgegangen das er einschliesslich
> Nummerierung wortgleich mit dem "echten" ISO-C Standard ist, bestenfalls
> mit dem Unterschied das der echte Standard den Hinweis auf ANSI nicht
> enthält.
Der Standard von 1999 stammt direkt von ISO und hat erstmal mit ANSI
nichts zu tun, aber moeglicherweise hast Du eine Kopie aus den USA die
von ANSI "approved" worden ist.
"processed and adopted" klingt allerdings nicht gut, es koennte auf
Modifikationen gegenueber dem Original hindeuten.
Das einzige "ANSI-C" ist das von 1989, alle anderen sind entweder K&R
oder ISO, daher musste das gemeint sein.
[...]
> > "processed and adopted" klingt allerdings nicht gut, es koennte auf
> > Modifikationen gegenueber dem Original hindeuten.
>
> Wirklich? Glaub ich eigentlich nicht, aber wenn du in der Richtung was
> weisst? Halte ich aber für sehr unwahrscheinlich da der Titel ja nachwievor
> ISO/IEC 9899 ist. Da können sich wohl selbst die Amis keine Modifikationen
> leisten ohne den Titel zu entfernen oder zumindest anzupassen.
"processed" kann IMHO nichts anderes bedeuten als "bearbeitet"; ob das
zu inhaltlichen Unterschieden fuehrt oder sich z.B. nur auf
Formatierungen bezieht weiss ich nicht, ich kenne diese US-Ausgabe
nicht. Es waere allerdings ein schlechter Scherz, den Kunden eine
inhaltlich modifizierte Ausgabe eines Standard anzudrehen, noch dazu mit
dem originalen Titel.
Naja, wenn man's so sieht dass Uebernahmen auch zaehlen, dann ist es
hier auch ein Firmenstandard, weil er Teil der Programmierrichtlinien
ist ;-) Wir vergeben aber keine Nummern fuer die Dinger ;-)
[...]
> > ich kenne diese US-Ausgabe
> > nicht. Es waere allerdings ein schlechter Scherz, den Kunden eine
> > inhaltlich modifizierte Ausgabe eines Standard anzudrehen, noch dazu mit
> > dem originalen Titel.
>
> ACK. Was für eine Version des Standards kennst du denn? (bzw. woher hast
> deine?)
Ein PDF, nennt sich "INTERNATIONAL STANDARD (c)ISO/IEC ISO/IEC 9899:1999
(E) / Programming languages — C". Ich dachte immer, es sei das Teil was
man fuer 18 Dollar von ANSI herunterladen kann, aber wenn da "processed
and approved" drinsteht dann habe ich was anderes. Kann bei Gelegenheit
mal fragen woher es eigentlich kam, fuer mich kam's aus unserem
Sekretariat ;-)
> Ein PDF, nennt sich "INTERNATIONAL STANDARD (c)ISO/IEC ISO/IEC 9899:1999
> (E) / Programming languages — C". Ich dachte immer, es sei das Teil was
> man fuer 18 Dollar von ANSI herunterladen kann, aber wenn da "processed
> and approved" drinsteht dann habe ich was anderes. Kann bei Gelegenheit
> mal fragen woher es eigentlich kam, fuer mich kam's aus unserem
> Sekretariat ;-)
Es zirkuliert eine Raubkopie der ISO-C-Norm, die nicht das
ANSI-Deckblatt trägt, aber ansonsten der ISO-Norm gleicht, wie sie von
ANSI verbreitet wird (ANSI- und ISO-Norm sind bis auf das Deckblatt
sowieso gleich).
Meine Kopie geht auf der ersten Seite mit dem Inhaltsverzeichnis los,
das sieht eher ungeil aus. Gibt's ein zweifelfreies Kennzeichen der
Raubkopie, oder langt das fehlende Deckblatt schon?
Meine korrekte .pdf hat den Inhalt erst ab Seite 3.
--
Mit freundlichen Grüßen
Helmut Schellong po...@schellong.de po...@schellong.com
www.schellong.de www.schellong.biz sche...@t-online.de
http://www.wikiservice.at/dse/wiki.cgi?FreeBSD
> Meine Kopie geht auf der ersten Seite mit dem Inhaltsverzeichnis los,
> das sieht eher ungeil aus. Gibt's ein zweifelfreies Kennzeichen der
> Raubkopie, oder langt das fehlende Deckblatt schon?
Legal erworbene digitale Versionen haben alle ein Deckblatt. Die
Version, die Du hast, wurde wohl an die verschiedenen nationalen
Normungsorganisationen und ISO geschickt, damit diese ihr Deckblatt
draufmachen können.
>Meine Kopie geht auf der ersten Seite mit dem Inhaltsverzeichnis los,
>das sieht eher ungeil aus. Gibt's ein zweifelfreies Kennzeichen der
>Raubkopie, oder langt das fehlende Deckblatt schon?
Meine Kopie fängt auch direkt mit dem Inhaltsverzeichnis an, hört aber auf
den Dateinamen "ISO-C-FDIS.1999-04.pdf" - lies: Es handelt sich um einen
(?den letzten?) Draft.
BTW: Gibt es eigentlich seit April 1999 noch nennenswerte Änderungen?
Gruß, Bodo
--
MS Outlook Express?->[DE: http://piology.org/ILOVEYOU-Signature-FAQ.html]
@@@@@ GEGEN TCG aka. TCPA: @@@@@ [DE: http://www.againsttcpa.com]
Probleme mit Spam? [EN: http://www.spamhaus.org/globalremove.html]
Hallo,
> Meine Kopie fängt auch direkt mit dem Inhaltsverzeichnis an, hört aber auf
> den Dateinamen "ISO-C-FDIS.1999-04.pdf" - lies: Es handelt sich um einen
> (?den letzten?) Draft.
Bzgl. C-Draft online siehe auch <http://www.vmunix.com/~gabor/c/draft.html>.
> BTW: Gibt es eigentlich seit April 1999 noch nennenswerte Änderungen?
Änderungen gibt es, eine Übersicht über diese ist mir nicht bekannt.
Tschüss,
Wolfgang.
--
"Es gibt Diebe, die nicht bestraft werden und einem doch das Kostbarste
stehlen: die Zeit."
-- Napoleon Bonaparte
Na prima, jetzt habe ich also auch so'n Deckblatt. Dabei ist es nichtmal
normativ, ich werd's wahrscheinlich gar nicht lesen ;-)
> Meine Kopie fängt auch direkt mit dem Inhaltsverzeichnis an, hört aber auf
> den Dateinamen "ISO-C-FDIS.1999-04.pdf" - lies: Es handelt sich um einen
> (?den letzten?) Draft.
Diese Datei wurde vom einigen im Nachhinein als endgültige Fassung in
Umlauf gesetzt, die tatsächliche Fassung der Norm enthält aber noch
einige Korrekturen. Dies ist bedauerlich, da es von ISO-C-FDIS.1999-04
eine recht lesbare text/plain-Fassung gibt.
Das hat zwar auch nichts mit C zu tun, aber unter 'Raub' versteht man
die _gewaltsame_ Inbesitznahme fremder Habe, dh sogenannter 'fremder,
beweglicher Sachen'. Nehmen wir mal an, ich entwende Dir in einer
Straßenbahn das Portemonaie. Das wäre dann vermutlich ein 'einfacher
Diebstahl', denn es hat 'bloß' den Besitzer gewechselt. Falls ich Dir
mit einem Baseballschläger bewaffnet an einer dunklen Straßenecke
auflauere und Dich 'höflich' um Deine Brieftasche bitte, wäre das
'Raub' falls Du sie mir freiwillig gibst, und vermutlich 'Raubmord' im
anderen Fall. Aus naheliegenden Gründen wird das anders und schwerer
geahndet, als 'illegale Vervielfältigung'.
F'up2 poster
Bei einer 'Raubkopie' wird ja niemandem etwas weggenommen, sondern im
Gegenteil etwas vermehrt. Was höchstens 'geraubt' wird, ist die
virtuelle Lizenz
dazu.
Gruß
Holger