View Full Version : *Zeros bzw. 0
FNeurieser
02-12-11, 08:49
Hallo,
ich hätte da eine Frage die zwar manchen vielleicht dumm vorkommt, aber ich bräuchte wirklich eine Antwort darauf:
Besteht ein Unterschied, wenn ich ein numerisches Feld auf 0 bzw. *Zeros prüfe?
Also: When FELD1 <> 0 oder
When FELD1 <> *Zeros
Danke für die Infos schon vorab
*zero/*zeroes ist eine sog. figurative Konstante und wird vom Compiler mit "0" ersetzt.
*zero verwendet ich nur wegen der besseren Lesbarkeit und zur Unterscheidung von "O", was der Compiler sowieso anmeckern würde :).
holgerscherer
02-12-11, 09:32
... zur Unterscheidung von "O", was der Compiler sowieso anmeckern würde :).
Ausser, man definiert eine Konstante O mit dem Wert 0 - solche Scherze habe ich auch schon erlebt... Passend dazu die Konstante I. Wer sowas macht, denkt nicht an Brillenträger ;-)
-h
Ausser, man definiert eine Konstante O mit dem Wert 0 - solche Scherze habe ich auch schon erlebt... Passend dazu die Konstante I. Wer sowas macht, denkt nicht an Brillenträger ;-)
-h
Wollen Sie die Festplatte wirklich formatieren? (j) jetzt nicht, (n) na klar!
D*B
holgerscherer
02-12-11, 09:47
Wollen Sie die Festplatte wirklich formatieren? (j) jetzt nicht, (n) na klar!
D*B
"Wollen Sie die Platte wirklich nicht formatieren? Ja/Nein" wäre auch gut.
Im Ernst - das mit den Konstanten kam daher, dass der IT-Leiter keine konstanten Zahlenwerte im Code haben wollte, was im Grundprinzip ja nicht soo falsch ist. Auf die Frage, warum O/I und nicht NIXDA und DOCHKLAR oder sowas, kam die Antwort "Speicherplatz sparen". Ich hab dann mal einen Grundkurs gehalten...
Zurück zum Thema - für den OP ist es egal, es ist eine Frage der Lesbarkeit. Man sollte es eben nur nicht übertreiben.
-h
Was den Speicherplatz angeht:
d Null1 c inz(0)
d Null2 c inz(00)
d Null3 c inz(000)
d Null4 c inz(0000.00)
Ist das Vergleichsergebnis eigentlich auch immer gleich, egal welche Konstante ich nehme oder sollte ich je Feldausprägung die passende Null-Konstante definieren :)?
Im Ernst - das mit den Konstanten kam daher, dass der IT-Leiter keine konstanten Zahlenwerte im Code haben wollte, was im Grundprinzip ja nicht soo falsch ist. -h
... abseits vom Jux: in ordentlichen Programmiersprachen verwendet man Konstanten auch weil sie einen festgelegten Typ haben, was insbesondere bei Zahlen nicht ohne Belang ist. Das dumme in RPG ist halt nur, dass da Konstanten eben keinen Typ haben können, sondern der wie bei Literalen implizit vom Compiler ausgewürfelt wird.
D*B
FNeurieser
02-12-11, 10:11
OK,
danke für die Beantwortung meiner Frage an alle.
Defining Data and Prototypes (http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c092508413.htm#HDRSPFIG)