Ich mach den Thread mal auf, damit sich (eventuell/hoffentlich) kommende Fragen von Schülern nicht mit den Diskussionen vermischen. Der C-lernende ist wahrscheinlich nicht sonderlich an unserem technomechanisch-philosophioschen Gedankenaustausch interessiert, sondern eher an den Ergebnissen davon.
Wenn man die Hämmungen abbauen möchte, C zu lernen um vom schrecklichen BASIC wegzukommen, können solche Diskussionen vielleicht sogar demotivierend sein. Also tun wir's hier:
Die Anmerkungen von sauhund:
> fussnoten sollten jeweils nach jedem abschnitt und nicht gaaaaaaaaaaaaaaanz weit
> unten auf der seite stehen. das nervt
Ja, ich bin mit der Wiki-Engine auch noch nicht ganz zufrieden. Dazu mache ich nacher einen anderen Thread auf. Inzwischen kann der Leser ja auf die Fußnote klicken, kommt an's Ende der Seite, klickt da nochmal, kommt wieder zurück zum Text. Oder zeigt mit der Maus auf die Fußnote und liest das aufpoppende Textdingelchen. Besser als nüscht.
> bezüglich kommentaren fehlt mir der hinweis das c++-style kommentare zwar von
> vielerlei compilern geschluckt werden, ABER es oft trotzdem sinnvoll ist auf diese
> zu verzichten, sofern man auf portabilität wert legt.
Du hast aber genau die Stellen gefunden, über die ich auch eine Weile nachgedacht habe.
Bei dem Thema kann man ganz klar (mindestens) die zwei Standpunkt identifizieren:
a) C90 & co kennt noch keine "//"-Kommentare. Es gibt viele Projekte, die C90 annehmen und deshalb C99-Kommentare verbieten. Man sollte der Portierbarkeit halber auf sie verzichten.
b) C99 standardisiert "//"-Kommentare. Schon vor 1999 haben sehr viele Compiler (oder darf ich sagen: die meisten?) diese Kommentare erlaubt, wenn man es ihnen nicht explizit per Schalter verboten hatte. Bei kurzen Kommentaren ist "//" einfach praktischer.
Ich persönlich halte b) nicht für schlechten Stil. Bei fremden Projekten passe ich mich allerdings auch auf a) an (z.B. in meiner Firma).
Wenn Du Dir zum Beispiel den Linux-Kernel ansiehst: In dem ist IIRC "//" auch verboten, andererseits ist der nur auf GCC und auf sehr wenigen anderen Compilern übersetzbar (und auch nur weil die sich viel Mühe dafür geben). Ist doch Heuchelei.
Beim Vice hingegen kann ich es verstehen, weil der auch auf Plattformen kompilierbar ist, wo es nur Steinzeitcompiler gibt.
Aber nichts desto trotz ist an dem Einwurf was dran. Ich werde mal versuchen, den Text so anzupassen, dass dem Leser das klar wird.
> "Zwischen Anweisungen mitten in einem Block können beim cc65 keine weiteren Definitionen folgen."
> würde ich anders formulieren, besagtes verhalten hat nämlich nichts mit cc65 sondern dem unterstützten
> c standard zu tun. (allgemein sollte es selten bis nie nötig sein auf cc65 spezifisch bezug zu nehmen, das
> verwirrt nur)
Auch ein gutes Thema.
Ich persönlich definiere meine Variablen in C immer an Anfang der Funktion. Ist bei mir eine Sache des Stils. (Bei C++ ggfs. am Anfang des jeweiligen Blocks, damit Konstruktoren von Objekten nur ausgeführt werden, wenn sie auch tatsächlich benutzt werden)
Andere sagen, die Definition sollte aus Stilgründen so dicht wie möglich an der ersten Verwendung sein.
Ehrlich gesagt war ich echt überrascht, dass die Definitionen fast an beliebiger Stelle stehen dürfen. Dachte immer, das sei nur in C++ so, und in C nur am Blockanfang (und for(...)). Fazit: So ganz glücklich bin ich mit dem Absatz auch noch nicht. Jetzt werde ich doch tatsächlich mal in die Standards sehen. Die älteren sind aber schwer zu finden. Und selbst im C99 habe ich noch nicht die richtigen Stellen gefunden.
Ich war übrigens der Meinung, mich mit C gut auszukennen. Aber in den letzten Tagen bestätigt sich wiedermal: Man lernt immer was dazu. So lohnt sich der Kurs auch für mich.