Je toto chyba v mosaic při určité definici vlastního typu proměnné ?
(1/1)
Jiri Dvorak:
K věci :
(vynechám zdlouhavý popis z příkladu je problém celkem jasný)
TYPE
type_pok : STRUCT
q : ( a, b, c); // zde je problém
arb : ARRAY [0..20] OF BOOL; // zde je problém
END_STRUCT;
END_TYPE
VAR_GLOBAL RETAIN
arb2 : ARRAY [0..20] OF BOOL;
var_tp : type_pok;
END_VAR
s tímto vytvořeným typem nechodí toto ( pouze kód pro test):
for y := 0 to 20 do
arb2[y] := true;
var_tp.arb[y] := true;
end_for;
překvapivě toto jde:
var_tp.arb[1] := true;
a druhé ( tedy pro mě ) překvapení, pokud:
TYPE
type_pok : STRUCT
arb : ARRAY [0..20] OF BOOL;
q : ( a, b, c);
END_STRUCT;
END_TYPE
Tak je zase po problému...... ..
Jindra_K:
váš dotaz jsem předal kolegům z vývoje prostředí Mosaic, předpokládám, že se do několika dní ozvou.
Milan Bydžovský:
Překladač bohužel dovolil konstrukci, se kterou neumí pracovat, a to definice enumerace jako instance.
Problém lze obejít následovně:
Kód:
TYPE
Tq : ( a, b, c); // definice enumerace
type_pok : STRUCT
q : Tq; //pouziti enumerace
arb : ARRAY [0..20] OF BOOL;
END_STRUCT;
END_TYPE
Následné operace jsou pak již korektní
Navigace
[0] Index zpráv