
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Achim, Du hast mich mißverstanden. Ein Ausdruck wie "a=1" kann niemals ein Labelname sein, da es das für Labelnamen ungültige Zeichen "=" enthält. Schon allein daran kann der Compiler erkennen, daß es sich um einzelne Anweisungen handelt. Nur im Zweifelsfalls wie z.B. bei "sub1 : sub2 : sub3", wo also nicht klar erkennbar ist, ob Subroutinen aufgerufen oder ob das Label "sub1" definiert werden soll, könnte die Regel mit dem Leerzeichen angewandt werden. Aber vielleicht ist es besser, die Labels durch "#" vor dem Labelnamen zu kennzeichnen, wie in CCBASIC. Dann gibt es keine Verwechslungsgefahr. Oder man schaut nach, wie es in anderen BASIC-Dialekten gelöst wurde (QBASIC, QuickBASIC, PowerBASIC, TurboBASIC, VisualBasic, etc. pp.). Der Vorteil von mehreren Anweisungen in einer Zeile liegt auf der Hand: Der Anwender braucht nicht umzulernen oder seinen bestehenden Code umständlich umzuformatieren. Die Diskussionen á la "schlechter" Programmierstil hatten wir schon einmal. Auch eine Definition innerhalb einer Anweisung wie "for (int i=0; i<10; i++)" wird als schlechter Programmierstil angesehen, aber trotzdem von aktuellen Compilern unterstützt. Es interessiert eben nicht, was Puristen und Theoretiker als guten Programmierstil predigen, sondern einzig und allein das, was der Anwender will. Stefan schreibt einen Compiler, keinen Leitfaden für guten Programmierstil. Außerdem ist nicht ganz nachvollziehbar, weshalb mehrere Anweisungen in einer Zeile in jedem Fall unübersichtlicher sind als pro Zeile nur eine Anweisung. Die Übersichtlichkeit wird unter bestimmten Umständen sogar gefördert, da jeder Bildschirm (sofern nicht gedreht) das Format 4:3 besitzt. Bei ausgedrucktem Sourcode ist das etwas anders. Interessant ist es auch, zu Testzwecken möglichst viele Befehle in eine Zeile zu packen, um sie bei Bedarf bequem durch ein Semikolon auszukommentieren. ' Alle Variablen initialisieren in CCBASIC a=0 : b=0 : c=0 : d=0 : e=0 : f=0 : g=0 : h=0 : i=0 : j=0 : k=0 : l=0 ' Alle Variablen initialisieren in mBasic a=0 : b=0 : c=0 : d=0 : e=0 : f=0 : g=0 : h=0 : i=0 : j=0 : k=0 : l=0 ' Alle Variablen deklarieren & initialisieren in C int a=0, b=0, c=0, d=0, e=0, f=0, g=0, h=0, i=0, j=0, k=0, l=0; ' Alle Variablen initialisieren in Basic++ a=0 b=0 c=0 d=0 e=0 f=0 g=0 h=0 i=0 j=0 k=0 l=0 Auch ein CLEAR- oder ERASE-Befehl wäre in diesem Fall keine Lösung, da der Anwender vielleicht nicht mit 0 sondern mit anderen Werten initialisieren will. Ansonsten wäre gegen ein "CLEAR a,b,c" und auch "DEFINE a,b,c BYTE" als Erweiterung der Syntax nichts einzuwenden und würde die Übersichtlichkeit und Bequemlichkeit fördern. Auch ein PRINT "a=";a wie in anderen Dialekten sollte unterstützt werden. Dietmar Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |