Auch wenn man eine Deklaration weglassen kann, wenn die aufgerufene Funktion vor dem Aufruf steht, so sollte man sich angewöhnen, immer eine Deklaration vorzunehmen.
Aber nur, wenn die Funktion auch für andere Units sichtbar sein soll. Ist es eine unitinterne Funktion, gehört sie nicht in den Interface-Teil und sollte höchstens im implementation-Teil mit
forward
deklariert werden.
Zitat:
[*]Auch wenn man
Funktion();
für parameterlose Funktionen verwenden kann, ich vermeide es und benutze stattdessen
Funktion;
. Keine Ahnung, ob das Verwenden leerer Klammern Auswirkungen haben kann und/oder ob das irgendeinem Standard entspricht oder widerspricht (nein, ich meine nicht den C-Standard
).
Ich habe mir inzwischen wieder Klammern angewöhnt, weil sonst Selbstaufrufe doppeldeutig sein können:
Delphi-Quellcode:
function xyz: Integer;
begin
// do smthng
a := xyz;
// do smthng
end;
Nun steht es dem Compiler offen, ob er "xyz" wie "Result" wertet (
TP-Abwärtskompatibilität) oder als Selbstaufruf, der Ausdruck ist nicht eindeutig. Aber zugegeben - rekursive Funktionen haben ja meist Parameter, daher kommt's selten vor.