Hallo Besucher, der Thread wurde 14k mal aufgerufen und enthält 51 Antworten

letzter Beitrag von skoe am

C-Kurs, Abend 3 - Verbesserungsvorschläge

  • ich finde den vergleich mit der basic "for" schleife sehr... sagen wir mal unschön. weil: die basic schleife hat eigentlich nur wenig mit der for schleife in c gemeinsam wenn man sich beides mal genau anguckt:


    - die basic for schleife ist nicht kopf- sondern fussgesteuert
    - die basic for schleife hat ein sehr eigenwilliges verhalten beim verarbeiten der abbruchbedingung (es macht einen unterschied ob die zählvariable erhöht oder erniedrigt wird). die "normalform" der basic schleife nach C übersetzt gibt in etwa sowas:


    - die basic schleife kann mehrere "next" haben, und so kann man programmpfade konstruieren die sich fast nicht mehr anständig nach C "übersetzen" lassen.
    - dito: das "next" muss nicht wirklich am fuss der schleife stehen


    zb sowas:


    Code
    1. 10 for i=0to10:get a$:if a$="" then next: goto 20
    2. 15 print "bla": end
    3. 20 print "blub": end


    gruselige konstruktion, aber durchaus gebräuchlich (zb in den programmen auf der testdemo disk)

  • ich finde den vergleich mit der basic "for" schleife sehr... sagen wir mal unschön.


    damit haben wir uns auch etwas schwer getan. zumal die for-schleife in basic 2.0 keine integer laufvariablen akzeptiert.


    der etwas verunglückte vergleich sollte nur eine art aufhänger sein, um von etwas bekanntem auszugehen. mit den ganzen nachteilen, die du schon aufgezählt hast ...


    der feine unterschied zwischen kopf- und fussgesteuert wird natürlich spätestens beim erklären von "while () {}" und "do {} while ()" nachgeholt.

  • nein, wirklich nicht. so einen spaghetticode wie man in basic v2
    verzapfen kann kriegt man in C nicht hin, völlig unmöglich.


    Das möchte man meinen. Aber was ich bei meiner Arbeit schon an Konstrukten gesehen habe, meist von einer bestimmten großen Firma (closed source) - grausig. Ich sag nur: gotos zwischen cases verschachtelter switches (natürlich über die Ebenen hinweg :-/) ohne ersichtlichen Grund. Der Entwickler hat dann selbst so den Überblick verloren, dass Code nutzloserweise doppelt ausgeführt wurde. Unglaublich.

  • gotos zwischen cases verschachtelter switches (natürlich über die Ebenen hinweg :-/)



    So etwas habe ich auch schon mal gesehen, "gotos in "c", merkwürdig....hmmmm..., wusste nicht das es so etwas gibt.
    Man kann es einfach nicht lassen, auch die C-programmierer haben noch immer etwas Basicblut in sich. :winke:



    mfg

  • So, ich werde mich jetzt erstmal dem Basic vom Plus4 widmen und das Einbinden von ASM-Routinen.
    Erste Versuch sind schon wunderbar.
    Das Basic hat viele Möglichkeiten.


    Bin mit dem Basic und dem Systemprogrammieren jetzt schon weiter auf dem Plus4 wie mit dem cc65.
    Da die Speicherverlegung beim Plus4 mit cc65 nicht hinhaut, kehre ich dem cc65 erstmal den rücken.



    mfg

  • du wolltest sagen: weil du es nicht verstanden


    Eben, ich habe alles mögliche eingeben und umgestellt usw. klappt nicht.


    Ich gebe es wenigstens zu, aber die anderen Schlaumeier babbeln nur...ho....ho.... :winke:.


    Auch wird es zuviel Programmiererei wenn ich die ganze Graphicbefehle umsetzen will in "c" vom Plus4 , das schaffe ich nicht.
    Und nur "Hello World" in "c" und "34+45" ausgeben formatiert in der 16ten Zeile auf der 16ten Courserstelle ist halber kram, dafür bietet der Plus4 zuviel.


    Irgendwann stimmt die Verhältnismässigkeit nicht mehr zur Zeit die man reinsteckt in "c".


    Es gibt auch keinen im Forum , der auch dauerhaft damit Programmiert und Programme mit dem cc65 erstellt, das wäre sonst toll.


    Von mir aus soll das einschlafen.


    Könnt diesen Thread jetzt schliessen. :bia


    Werde mich dem original widmen, welches der Plus4 bietet. :bussi:


    ...frohes schaffen.... :roll2:


    mfg

  • das schliesst du woraus?


    Seit mehreren Wochen eiere ich hier als Dauergast rum, der regelmässig Fragen gestellt hat.
    Und halbwegs gute Antworten bekommen habe, aber nicht von Proggern die den c64/Plus4 mit cc65 regelmässig proggen.
    Irgendwie ist hier "tote Hose" mit dem cc65, schade. :nixwiss:


    Vielleicht erwacht es mal, aber bitte nicht für einen Tag. :winke:


    Und von "ollen kamellen" die vor einpaar Jahren geproggt worden sind in cc65 ,kann man die Fragen nicht beantworten die ich gestellt habe. Es geht hier um spezielle Dinge für den c64/Plus4 und nicht um "Hello World". :freude


    mfg

  • Eben, ich habe alles mögliche eingeben und umgestellt usw. klappt nicht.


    Ich hab gerade zwei Stunden lang mit meinen Fingern auf der Tastatur rumgehämmert und es ist immer noch kein Gedicht bei rausgekommen. Also von mir aus braucht keiner mehr Gedichte zu schreiben. Und dieser ganze Deutschunterricht kann auch abgeschaft werden. Präpositionen und Verben, alles nur halber Kram. Es gibt auch keinen, der Gedichte schreiben kann, sonst hätte ja jemand meine Gedichte zuende geschrieben.

  • Ich hab gerade zwei Stunden lang mit meinen Fingern auf der Tastatur rumgehämmert und es ist immer noch kein Gedicht bei rausgekommen.


    Du sollst den Kursus weiterbringen und keine Gedichte schreiben, vielleicht braucht den noch einer. :nixwiss:


    Und wenn du nicht in der Lage bist, auf die speziellen Dinge für den c64/Plus4 einzugehen, wird der Kurs irgendwann mal langweilig. :bia


    Hier stehen die allgemeinen Dinge sehr ausführlich. Warum muss dieser Kram 2x erfunden werden "Hello World":


    http://pronix.linuxdelta.de/C/standard_C/index.shtml


    Widme dich dem was dem c64/Plus4 an geht.



    mfg

  • Hier stehen die allgemeinen Dinge sehr ausführlich. Warum muss dieser Kram 2x erfunden werden (...)


    da steht aber auch mancher schwachsinn. ich zitiere:


    Zitat


    Achtung: Um Irritationen zu vermeiden, soll der Unterschied der Begriffe "Deklaration" und "Definition" erwähnt werden. Häufig hat es den Anschein, als bedeuteten beide dasselbe. Dies trifft jedoch nicht zu. Erst wenn bei einer Variablen-Deklaration eine Initialisierung vorgenommen wird, handelt es sich um eine Definition.


    schau dir lieber das hier an, wenn der kurs nicht nach deinem geschmack ist: http://c-buch.sommergut.de/Kapitel3/Variablen.shtml


    Zitat


    Der Unterschied zwischen Deklaration und Definition einer Variablen besteht darin, daß sich die Deklaration ausschließlich darauf beschränkt, die Attribute einer Variablen (Name, Datentyp) dem Compiler bekannt zu machen. Bei der Variablendefinition hingegen wird zusätzlich das Datenobjekt erzeugt, d.h. Speicher reserviert, der die Variable aufnimmt. (...) Deklarationen von Variablen beziehen sich immer auf Variablen, die bereits anderswo definiert wurden.


    In der Literatur wird oft zwischen Deklaration und Definition von Variablen nicht genau unterschieden, und beide Begriffe werden mehr oder weniger synonym gebraucht. Deshalb ist bei der Definition von Variablen häufig - zu Unrecht - von Deklaration die Rede.


    ich frage mich, wie so ein buch wieder aufgelegt werden kann ...

  • http://c-buch.sommergut.de/Kapitel3/Variablen.shtml


    Ist auch nicht schlecht , reicht auch zum lernen. :bia


    In der Literatur wird oft zwischen Deklaration und Definition von Variablen nicht genau unterschieden, und beide Begriffe werden mehr oder weniger synonym gebraucht. Deshalb ist bei der Definition von Variablen häufig - zu Unrecht - von Deklaration die Rede.


    Lass die Schwachmaten doch reden, welches richtig oder falsch ist. Sind doch für uns nur Zungenbrecher dieser schwachsinn.
    Ich kann nur schmunzeln, wenn man drüber streitet, oder die haben langeweile. :nixwiss: