Obtenez-vous les mêmes résultats que moi ?
Code : Tout sélectionner
Macro _q_t_
"
EndMacro
Macro _n (__n)
_q_t_#__n#=_q_t_+Str(__n)+" "
EndMacro
Macro _s (__S)
_q_t_#__S#=_q_t_+__S+" "
EndMacro
Structure multi
StructureUnion
VA.a[0]
VB.b[0]
VC.c[0]
Vs1.s{1}[0]
Vw.w[0]
VL.l[0]
VQ.q[0]
VF.f[0]
VD.d[0]
VS8.s{8}[0]
VS16.s{16}[0]
EndStructureUnion
EndStructure
Structure multi2
StructureUnion
VA.a[64]
VB.b[64]
VC.c[64]
Vs1.s{1}[64]
Vw.w[32]
VL.l[16]
VQ.q[8]
VF.f[16]
VD.d[8]
VS8.s{8}[8]
VS16.s{16}[4]
EndStructureUnion
EndStructure
GR$="123"
CH$="12345"
; Define gr2.multi2
; Define ch2.multi2
; Debug _n(ch2)+_n(gr2)
; ch2\VS16[1]=ch$
; gr2\VS16[1]=gr$
; For i=0 To 2
; Debug _s(gr2\VS16[i])+_s(gr$)+_n(@gr2\VS16[i])
; Debug _s(ch2\VS16[i])+_s(ch$)+_n(@ch2\VS16[i])
; Next
Debug "***** avec structure [0] *****"
Define gr.multi
Define ch.multi
Debug _n(ch)+_n(gr)
ch\VS16[1]=gr$
gr\VS16[1]=ch$
For i=0 To 2
Debug _s(gr\VS16[i])+_s(ch$)
Debug _s(ch\VS16[i])+_s(GR$)
Next
End
***** avec structure [0] *****
ch=4407208 gr=4407208
gr\VS16= ch$=12345
ch\VS16= GR$=123
gr\VS16=12345 ch$=12345
ch\VS16=12345 GR$=123
gr\VS16= ch$=12345
ch\VS16= GR$=123
on peut remarquer que les 2 variables CH.multi et GR.multi ont la même adresse
Maintenant rendons actif la procédure avec CH2.multi2 et GR2.multi
Code : Tout sélectionner
Define gr2.multi2
Define ch2.multi2
Debug _n(ch2)+_n(gr2)
ch2\VS16[1]=ch$
gr2\VS16[1]=gr$
For i=0 To 2
Debug _s(gr2\VS16[i])+_s(gr$)+_n(@gr2\VS16[i])
Debug _s(ch2\VS16[i])+_s(ch$)+_n(@ch2\VS16[i])
Next
ch2=4407560 gr2=4407624
gr2\VS16= gr$=123 @gr2\VS16=4407624
ch2\VS16= ch$=12345 @ch2\VS16=4407560
gr2\VS16=123 gr$=123 @gr2\VS16=4407640
ch2\VS16=12345 ch$=12345 @ch2\VS16=4407576
gr2\VS16= gr$=123 @gr2\VS16=4407656
ch2\VS16[i]= ch$=12345 @ch2\VS16[i]=4407592
***** avec structure [0] *****
ch=4407560 gr=4407688
gr\VS16[i]= ch$=12345
ch\VS16[i]= GR$=123
gr\VS16[i]=12345 ch$=12345
ch\VS16[i]=123 GR$=123
gr\VS16[i]= ch$=12345
ch\VS16[i]= GR$=123
Les 2 variables CH.multi et GR.multi ont retrouvées des adresses différentes
Le compilateur s’emmêle-t-il les pédales ?
A+
PS: j'ai essayé avec les PB421 à PB542 on obtient les mêmes résultats