Code: Alles auswählen
type
TVec = array[0..2] of single;
const
v1: TVec = (1, 1, 1);
v2 = v1; // Illegal Expression
Code: Alles auswählen
type
TVec = array[0..2] of single;
const
v1: TVec = (1, 1, 1);
v2 = v1; // Illegal Expression
Code: Alles auswählen
Type
TVec = Array[0..2] Of single;
Const
v1: TVec = (1, 1, 1);
var
v2: Tvec absolute v1;
Code: Alles auswählen
type
TVec = array[0..2] of single;
{$J-}
const
v1: TVec = (1, 1, 1);
var
v2: Tvec absolute v1;
begin
WriteLn(v2[1]);
v1[1] := 2; // gesperrt
v2[1] := 2; // gesperrt
Es ist in dem const Abschnitt. Ein Vergleich kann man erst nach begin machen.Was soll denn der Vergleich machen? Meintest du eventuell ... v2 := v1;
Wie würdest du dies machen, nur das ich es für eine Array und nicht nur für einen Char brauche.ist das nicht ein bisschen umständlich um 2 Variablen zu haben die auf den exakt selben Speicherbereich zeigen ?
Code: Alles auswählen
const
SLASH = '/';
BACKSLASH = '\';
{$ifdef windows}
DEFAULSLASH = BACKSLASH;
{$endif}
{$ifdef linux}
DEFAULSLASH = SLASH;
{$endif}
Füe SLASH oder BACKSLASH gibt es eine Konstante oder Funktion in Lazarus : DirectorySeparator
const
SLASH = '/';
BACKSLASH = '\';
{$ifdef windows}
DEFAULSLASH = BACKSLASH;
{$endif}
{$ifdef linux}
DEFAULSLASH = SLASH;
{$endif}
Code: Alles auswählen
Type
TVec = Array[0..2] Of single;
{$J-}
Const
{$IFDEF Windows}v1{$ELSE}v2{$ENDIF}: TVec = (1, 1, 1);
Es ging mir um dies, nur das da hier noch viel mehr Konstanten sind.Kannst du in Worten erklären was genau du machen willst, mir drängt sich der Eindruck auf, dass deine Lösung ggf ganz anders ausfallen könnte ..
Code: Alles auswählen
type
Tsd_id128_t = array[0..15] of byte;
.....
SD_GPT_ROOT_X86_64_VERITY: Tsd_id128_t = ($2c, $73, $57, $ed, $eb, $d2, $46, $d9, $ae, $c1, $23, $d4, $37, $ec, $2b, $f5);
SD_GPT_ROOT_X86_VERITY: Tsd_id128_t = ($d1, $3c, $5d, $3b, $b5, $d1, $42, $2a, $b2, $9f, $94, $54, $fd, $c8, $9d, $76);
....
{$IFDEF CPUX86_64}
SD_GPT_ROOT_NATIVE: Tsd_id128_t absolute SD_GPT_ROOT_X86_64;
SD_GPT_ROOT_NATIVE_VERITY: Tsd_id128_t absolute SD_GPT_ROOT_X86_64_VERITY;
....
{$ENDIF}
{$IFDEF CPUI386}
SD_GPT_ROOT_NATIVE: Tsd_id128_t absolute SD_GPT_ROOT_X86;
SD_GPT_ROOT_NATIVE_VERITY: Tsd_id128_t absolute SD_GPT_ROOT_X86_VERITY;
....
{$ENDIF}
Dies ist mir schon bewusst, es ging um ein Beispiel.Füe SLASH oder BACKSLASH gibt es eine Konstante oder Funktion in Lazarus : DirectorySeparator
Lag ich ja mal gar nicht so falsch (Ausser das mit der Speicheradresse)Du kannst nur untypisierte Konstanten verwenden, um andere Werte (egal ob Variablen oder Konstanten) zu initialisieren. Das war schon immer so und wird (voraussichtlich) auch immer so bleiben.
Remark It should be stressed that typed constants are automatically initialized at program start.