Lazarus 3.0 (2023.12.21.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Válasz:Comp típus értékadásánál hiba 2011 febr. 08 07:34 #693

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 504
  • Köszönetek: 86
Az általad írt kódot nálam hibátlanul le lehet fordítani (parancssorból próbáltam).

A unitban ami a hibát előidézi biztosan konstans érték van hozzárendelve a változóhoz vagy inkább egy másik változó (esetleg ugyanolyan, de külön deklarált típussal)? Az eredeti forráskód mindig hasznosabb a hibakeresésnél, mint egy ugyanolyannak tűnő másik...

Type checking errors

Hiba: Összeegyeztethetetlen típusok: "típus1" helyett "típus2" szükséges

Nem lehet az átalakítást elvégezni a két típus között. Egy másik lehetséges ok hogy a változók típusai külön lettek meghatározva:
Var  
  A1 : Array[1..10] Of Integer;  
  A2 : Array[1..10] Of Integer;  
Begin  
  A1:=A2; {Ez az állomány ilyen hibaüzenetet ad, mert a Pascal szigorúan ügyel a típusokra.}  
End.  
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

Válasz:Comp típus értékadásánál hiba 2011 febr. 07 21:40 #691

  • mjen
  • mjen profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 3
  • Köszönetek: 0
Szia Gábor!

Kösz a gyors választ!
Erről fogalmam sem volt. :blink:

A példát csak azért szúrtam be, hogy egyértelmű legyen mi a problémám.

Mit kezdjek szerinted, azzal az unittal, amiben ezt a hibaüzenetet generálja? Nem én írtam, csak használnám.

Üdv.
Üdv.
Jen

Válasz:Comp típus értékadásánál hiba 2011 febr. 07 07:53 #689

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 504
  • Köszönetek: 86
Comp

Az Intel 80x86 típusú processzorokon a Comp típus 63 bitet tartalmaz a szám részként és egy bitet előjelként (az MSB helyen). A Comp típus 8 bájton van tárolva.
Más processzorokon a Comp típus nem támogatott.

MSB = Most significant bit ~ Legmagasabb helyiértékű bit

Tehát a Comp nem "real" hanem "integer" típus, a hibaüzenetet is e miatt kapod.
n5:=10;
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

Comp típus értékadásánál hiba 2011 febr. 03 22:40 #687

  • mjen
  • mjen profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 3
  • Köszönetek: 0
Sziasztok!

Az alábbi kódrészlet hibát generál az n5 változó értékadásakor.
Nem értem, mi a gond?
A többi típusnál jól müködik, csak a Comp-nál van baja.
Elöre is kösz a segítséget!
var
  n1: real;
  n2: single;
  n3: double;
  n4: extended;
  n5: comp;
  n6: currency;
begin
  n1:=10.0;
  n2:=10.0;
  n3:=10.0;
  n4:=10.0;
  n5:=10.0; // Error: Incompatible types: got "Single" expected "Int64"
  n6:=10.0;
end.
Üdv.
Jen

  • Oldal:
  • 1