Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#694

AW: Was nervt euch so, wärend der Programmierung oder so allgemein

  Alt 3. Dez 2011, 19:03
Weil Buffer typenlos ist -> In Fact ist var Buffer nichts anderes als const Buffer: Pointer .
Angenommen, Buffer wäre kein Var-Parameter, woher soll Delphi dann wissen, wieviel Speicher es übergeben soll?
Dazu bräuchte man dann wieder ne Menge Compiler-Magic.
Wie du schon sagst, sind var und const technisch das gleiche. Der Unterschied ist: Du kannst einen var-Parameter an eine Subroutine mit const-Parameter übergeben, aber nicht einen const-Parameter an eine Subroutine mit var-Parameter.
Delphi-Quellcode:
procedure Bar(const Y: integer);
begin
  ...
end;

procedure Foo(var X: integer);
begin
  Bar(X);
end;
Geht.

Delphi-Quellcode:
procedure Bar(var Y: integer);
begin
  ...
end;

procedure Foo(const X: integer);
begin
  Bar(X);
end;
Geht NICHT.