| |
|
|
| Sebastian müsste was hinter CaseOfAnweisungen steht in Funktionen umlenken... Aufwandsfrage |
|
|
| |
|
|
|
Jac de Lad | Wie auch immer, jetzt gehts jedenfalls. Wenn ich ehrlich bin, der "Var"-Befehl ist mir sowieso suspekt. Die Variablen sollten am Anfang des Programms bzw. der Proc declariert werden und Schluss. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 28.07.2008 ▲ |
|
|
|
|
Sebastian König | iF
Ehhh, glatter prf2cpp-Bug. Innerhalb von CaseOf-Blöcken keine Variablendeklarationen nicht erlaubt? oO Die Deklaration ist schon erlaubt, aber nach dem EndSelect oder in einem anderen CaseOf-Block darf dann nicht mehr darauf zugegriffen werden. In C++ sind lokale Variablen halt immer nur im aktuellen Block gültig...
...und in anderen Sprachen ist es mindestens schlechter Stil!
MfG
Sebastian |
|
|
| |
|
|
|
| Speicher alloziieren hinter endSelect oder caseOf-Block schlechter Stil? Nunu, das halte ich für eine gewagte Aussage da es in XProfan keine Variablen gibt mit denen die Variablen, welche Du meinst, vergleichbar wären.
In XProfan sind Variablen wohl eher Speicheraliase - einfach herrlich! Hier zwischen .data und .code zu unterscheiden ist das, was ich "gewagt" nenne.
Warum erkundest nicht die Deklarationen zuvor und ziehst sie "hoch"? |
|
|
| |
|
|
|
Sebastian König | iF
Warum erkundest nicht die Deklarationen zuvor und ziehst sie "hoch"? Sowas mache ich teilweise, bei Prozeduren, die mehrere Parameters Zeilen haben. Aber hier geht es ja um sowas wie KompilierenMarkierenSeparieren Dieser Code würde zum Beispiel wenn test% weder 1 noch 2 ist, eine Fehlermeldung zur Laufzeit produzieren. Deshalb bin ich der Meinung, dass a& und b& in jedem Fall vor dem Select deklariert werden sollten. Bei Variablen, die jeweils nur lokal in einem der CaseOf-Teile benutzt werden, ist das natürlich etwas anderes...
MfG
Sebastian
P.S.: Per Brute-Force gehts auch jetzt schon mit Profan2Cpp: Einfach "Alle Variablen global deklarieren" aktivieren. |
|
|
| |
|
|
|
Jac de Lad | [QUOTE_="Sebastian König"][QUOTE_="iF"]..."Alle Variablen global deklarieren"...[/QUOTE] Was nicht immer empfehlenswert ist. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 28.07.2008 ▲ |
|
|
|
|
| Sebastian König
Hier würde einem otherWise z.B. ein Return fehlen - ein Programmierfehler.
Die Vars oder andere Deklarationen im Select könntest doch einfach grundsätzlich so betrachten: KompilierenMarkierenSeparieren Aber ich denke andere Dinge sind da wichtiger! |
|
|
| |
|
|
|
Sebastian König | iF
Die Vars im Select könntest doch einfach grundsätzlich so "hoch ziehen":
Schon klar, was Du meinst, aber ich mag das ganze irgendwie nicht. Die wiederholten Deklarationen sind ja auch redundant - am liebsten würde ich nur den Syntax-Check dazu bringen, das ganze anzumeckern... Aber was solls - XProfan erlaubt das ganze ja leider und ich werde mich in der einen oder anderen Form darum kümmern müssen...
@Jac: Ja, "Alle Variablen global deklarieren" sollte wirklich nur als letzter Ausweg benutzt werden.
MfG
Sebastian |
|
|
| |
|
|
|
| Sebastian König
Die wiederholten Deklarationen sind ja auch redundant - am liebsten würde ich nur den Syntax-Check dazu bringen, das ganze anzumeckern...
Um die Frage nach dem Schalter zur Unterdrückung dieser Meldung vorzuprogrammieren...
Einige Dinge werden aber gänzlich nicht möglich sein da XProfan ja dank der Runtime Möglichkeiten besitzt, welche nunmal eine "Runtimeumgebung" benötigen... |
|
|
| |
|
|
|
Sebastian König | iF
Um die Frage nach dem Schalter zur Unterdrückung dieser Meldung vorzuprogrammieren... Zumindest von Dir ;). Aber findest Du das mit den wiederholten Deklarationen wirklich schön?
iF
Einige Dinge werden aber gänzlich nicht möglich sein da XProfan ja dank der Runtime Möglichkeiten besitzt, welche nunmal eine "Runtimeumgebung" benötigen...
Ja, in der Tat. Set("Escape",...) und Execute wären ein Beispiel dafür, wobei letzteres ja auch in XProfan selbst nur im Interpreter funktioniert. Immerhin wird es demnächst ein Plug-In geben, mit dem man dafür sorgen kann, dass %ProgEnd einen korrekten Wert liefert. Hier würde mich interessieren, ob das außer Jac sonst noch jemand einsetzen würde...
MfG
Sebastian
P.S.: Ich werde den Thread mal splitten - ist das automatische Hinzufügen eines Hinweises auf die Aufteilung eigentlich schon implementiert? EDIT: Offenbar nicht - wäre wirklich praktisch! |
|
|
| |
|
|
|
| Sebastian König
Aber findest Du das mit den wiederholten Deklarationen wirklich schön?
Wiederholte?
Deklarieren nach VAR halte ich für eine kluge Entscheidung beim Programmieren mit XProfan.
Damit ists automatisch auch "schön", es macht ja Sinn.
Sebastian König
P.S.: Ich werde den Thread mal splitten - ist das automatische Hinzufügen eines Hinweises auf die Aufteilung eigentlich schon implementiert? EDIT: Offenbar nicht - wäre wirklich praktisch!
Das hole ich nach! |
|
|
| |
|
|
|
Sebastian König | iF
Wiederholte?
Deklarieren nach VAR halte ich für eine kluge Entscheidung beim Programmieren mit XProfan.
Damit ists automatisch auch "schön", es macht ja Sinn.
Mit wiederholt meine ich das Deklarieren der gleichen Variablen in den diversen CaseOf-Blöcken statt eines Declare vor dem Select. Den Var-Befehl an sich halte ich auch für eine sehr praktische Erweiterung! |
|
|
| |
|
|