Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Shared Array?
#1
Hallo.

Ich bin gerade mal wieder etwas an AmiBlitz dran und zwecks Code-Struktur mal eine oder zwei Fragen:

- In einem Statement wollte ich auf eine globale variable, ein Array zugreifen. Wie mach ich das, oder geht das nur für primitive Datentypen?

- In dem Zusammenhang, da es ja keine mehrfach Return-Werte gibt, kann man pointer eines z.B. longs übergeben und den in der Funktion dereferenzieren? Hab ich nicht in der Doku gefunden.


Grüße,
Manfred
Zitieren
#2
OK, denke ich habs für den ersten Teil: man braucht leere Klammern für den "Shared" Ausdruck, also "Shared myArray()".
Zitieren
#3
Das zweite verstehe ich nicht ganz.

Du kannst, wenn du z.B. zwei Words als Returnwert brauchst, natürlich ein Long damit bestücken und den dann wieder zerlegen. Oder was meinst du?

Genauso kannst du auch wie schon in 1) ja ein Shared Newtype, z.B.
Newtype.multireturn
ret1.l
ret2.w
end newtype
deftype.multireturn mymr

etc.

verwenden.
Amiga. Just to let ya know....
Zitieren
#4
Sorry, hatte ich zu umständlich erklärt. In AmigaE kann man mehrere Returnwerte zurück geben.
Das geht in Blitz nicht. Alternative wäre Zeiger auf deklarierte Variablen an eine Function/Statement zu übergeben die dann im Statement dereferenziert werden. Gutes altes C halt. Damit könnte man auch mehrere "Returnwerte" simulieren, zumindest hätte es denselben Effekt.
Weiß nicht ob das überhaupt geht in Blitz, konnte das in der Doku nicht finden.
Evtl. wäre es vielleicht auch gut wenn es nicht ginge. Smile
Zitieren
#5
nein, das geht nicht, man kann nur einen Wert zurückgeben.

Aber du kannst ja einen Memorypointer auf eine Struct zurückgeben, oder Shared Variablen verwenden, wie ich oben schrieb.
Amiga. Just to let ya know....
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste