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; // gesperrtEs 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.
 Verein
Verein Links
Links Suche
Suche