Et c'est plus propre que des variables globalescederavic a écrit :les structures ne sont pa nessecaire, mais elle simplifi beaucoup le code, et le rend par la meme occasion plus lisible/leger

Code : Tout sélectionner
Structure RESULTAT
octet.b
Mot.w
motlong.l
Chaine.s
EndStructure
Procedure MaProcedure()
Result.RESULTAT
Result\octet = #True
Result\Mot = 1234
Result\motlong = 12345678
Result\Chaine = "Hello World !"
ProcedureReturn @Result
EndProcedure
*Valeur.RESULTAT = MaProcedure()
Debug *Valeur\octet
Debug *Valeur\Mot
Debug *Valeur\motlong
Debug *Valeur\Chaine
Code : Tout sélectionner
Structure RESULTAT
octet.b
Mot.w
motlong.l
Chaine.s
EndStructure
Procedure MaProcedure()
Result.RESULTAT
Result\octet = #True
Result\Mot = 1234
Result\motlong = 12345678
Result\Chaine = "Hello World !"
ProcedureReturn @Result
EndProcedure
Procedure metlesouk()
a=7
b=9
c.f=0.1
d$="coucou"
EndProcedure
*Valeur.RESULTAT = MaProcedure()
metlesouk()
Debug *Valeur\octet
Debug *Valeur\Mot
Debug *Valeur\motlong
Debug *Valeur\Chaine
Code : Tout sélectionner
Structure RESULTAT
octet.b
Mot.w
motlong.l
Chaine.s
EndStructure
Procedure MaProcedure(*result.resultat)
*Result\octet = #True
*Result\Mot = 1234
*Result\motlong = 12345678
*Result\Chaine = "Hello World !"
;ProcedureReturn @Result : du coup, plus besoin de retourner de valeur
EndProcedure
Procedure metlesouk()
a=7
b=9
c.f=0.1
d$="coucou"
EndProcedure
MaProcedure(@Valeur.RESULTAT)
metlesouk()
Debug Valeur\octet
Debug Valeur\Mot
Debug Valeur\motlong
Debug Valeur\Chaine
filperj a écrit :Ah non,![]()
Une procédure ne doit jamais renvoyer un pointeur vers une de ses variables locales.
Quand une procedure se termine, ses variables locales n'existent plus, donc la mémoire où elles se trouvaient peut être réutilisée et modifiée, notamment par les variables d'autres fonctions: