Frage zu Types!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Heiko

Betreff: Frage zu Types!

BeitragDi, Sep 23, 2008 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
als allererstes mal dieser Beispielcode.....

Code: [AUSKLAPPEN]
Type Posi
   Field x# = 1.0, y# = 2.0, z# = 3.0
End Type


und folgende Funktion....

Code: [AUSKLAPPEN]
Function FFunction(tab.Posi)
   DLL_FFunction(tab\x#, tab\y#, tab\z#)
End Function


meine Frage dazu.

Wie funktioniert das Ganze?
Wenn ich der Funktion "FFunction" irgendeinen wert übergebe, was passiert dann mit den vorher definierten Felder im Type oben?

Da sind ja schon vorgegebene Werte drin.

Oder übergibt man da einfach nichts, sondern automatisch die vorher definierten werte?

Entschuldigt, ist sicher noobisch, aber types waren noch nie meine Stärke, zumindest in dieser Form nicht.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Sep 23, 2008 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Also
1. Zitat:
Type Posi
Field x# = 1.0, y# = 2.0, z# = 3.0
End Type
das geht nicht, alle Werte sind 0.0, mit vorher definierte geht das also nicht, selbst wenn BB nicht nörgelt sind die Werte = 0!

2. Wenn die Function diese Werte ändert dann ist das auch geändert!

Zitat:
Oder übergibt man da einfach nichts, sondern automatisch die vorher definierten werte?

Du übergibst einen Type und die aktuellen Werte werden dann evt in deiner Function geändert
[BB2D | BB3D | BB+]
 

Heiko

BeitragDi, Sep 23, 2008 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
mmmm ich habe das als beispiel genannt, weil die function aus einem bb wrapper stammt, und dort anders heißt, aber genau das habe ich nämlich nicht kapiert.

aber kann man in einer typedefinition prinzipiell keiner werte an die variablen übergeben?

wenn x#,y#,z# dann in jedem fall 0 wären, was für einen sinn hätte dann die von mir gepostete function?

wenn man

Code: [AUSKLAPPEN]
Function FFunction(tab.Posi)
   DLL_FFunction(tab\x#, tab\y#, tab\z#)
End Function


nutzen will, und dann FFunction(irgendeinenwert) nutzt, wäre das völlig sinnfrei, oder.

verstehe ich es richtig, dass eigentlich nur (tab\x#, tab\y#, tab\z#) alles mit 0 werten gefüllt wird?

Xeres

Moderator

BeitragDi, Sep 23, 2008 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich versteh nicht ganz was du erreichen möchtest... in der Type-Definition kannst du zwar beliebige Werte angeben ohne das es einen Fehler gibt, aber die werden nicht an einen neu erzeugtem Eintrag weitergereicht.
Deine DDL Funktion erhält drei Float zahlen - wie die gerade auch immer in dem Type-Eintrag aussehen mögen - wenn du nichts anderes angegeben hast eben 0.0 ...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Heiko

BeitragDi, Sep 23, 2008 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
das heißt

diese funktion

Code: [AUSKLAPPEN]
Function FFunction(tab.Posi)
   DLL_FFunction(tab\x#, tab\y#, tab\z#)
End Function


mit den types von oben würde bei benutzung als FFunction ()
immer DLL_FFunction(0.0,0.0,0.0) hervorrufen, richtig.

zwischendurch werden die variablen nicht geändert meinerseits, es existiert nur diese type deklaration sowie diese funktion.

hab ich das richtig verstanden?

Xeres

Moderator

BeitragMi, Sep 24, 2008 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, du hast es erfasst. Lässt sich ja auch experimentell nachweisen:
Code: [AUSKLAPPEN]
Type Posi
   Field x# = 1.0, y# = 2.0, z# = 3.0
End Type

Local t.Posi = New Posi

FFunction(t)
WaitKey()
End

Function FFunction(tab.Posi)
   ;DLL_FFunction(tab\x#, tab\y#, tab\z#)
   Print tab\x+", "+tab\y+", "+tab\z
End Function
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group