Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: So 26.07.09 15:35 
das ist echt trickreich, was du gemacht hast...
rangechecks sollte dann aber aus sein
und wenn die eh aus sind reicht doch auch:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
{$R-}
function Foo: Pointer;
var 
    S:array[0..0of Integer;
Begin
    Result := Pointer(S[2]);
end;

oder nicht?
und wenn du da die TypeCasts nicht willst:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
{$R-}
function Foo: Pointer;
var 
    S:array[0..0of Pointer;
Begin
    Result := S[2];
end;
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 26.07.09 15:39 
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
das ist echt trickreich, was du gemacht hast...
rangechecks sollte dann aber aus sein
und wenn die eh aus sind reicht doch auch:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
{$R-}
function Foo: Pointer;
var 
    S:array[0..0of Integer;
Begin
    Result := Pointer(S[2]);
end;

oder nicht?

Nein. Weil statische Range-Checks vom Compiler IMMER ausgeführt werden. Das führt also zu einem Compiler-Fehler :P

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: So 26.07.09 17:28 
ok gut, das wusste ich nicht..nja mir gefällt meins immer noch besser...
warum auf typcasts verzichten? ist dem asm ja egal...
und so brauch man die rangechecks nicht abschalten