Zeiger(variablen) wie in C++ in BB(3D) möglich?
Übersicht

Gray FoxBetreff: Zeiger(variablen) wie in C++ in BB(3D) möglich? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, weiß jemamd ob dies auch in BB möglich ist? Wäre sehr hilfreich oder gibt es eine andere Möglichkeit dafür? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein Grausighickhack wird in Blitz nicht unterstützt. Dafür gibt es ja bereits C++.
Es gibt Types, mit denen kannst du Structs machen wenn du möchtest. Darüber hinaus gibt es auch Banks damit du Alloc etc auch hast ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, das die gibt es bei BB leider nicht.
Wofür benötigst du die denn? Als Call by reference für Funktionen? Kommt immer auf den Verwendungszweck an ![]() Mfg Edit: Mal wieder zu lahm ![]() |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
Gray Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Möchte das gerne dazu nutzen um quasi mehrere Rückgabewerte in einer Funktion zu haben ![]() |
||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann geb eine bank oder ein type zurück oder benutz globals... | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Gray Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Goodjee hat Folgendes geschrieben: dann geb eine bank oder ein type zurück oder benutz globals...
Es ist doch so- Ich übergebe z.B. zwei Variablen an eine Funktion. im Endeffekt übergebe ich doch nur deren Inhalt. Aber "Bank" werde ich mir mal anschauen. |
||
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Globals funktionieren anders, weißt du wie? Das sind globale Variablen, die nur überall verfügbar sind. Also was steht dir da im Wege? | ||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
Gray Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
PowerProgrammer hat Folgendes geschrieben: Globals funktionieren anders, weißt du wie? Das sind globale Variablen, die nur überall verfügbar sind. Also was steht dir da im Wege?
Mir ist schon klar wie ich globale Variablen setze. Aber ich glaube wir reden aneinander vorbei ![]() Beispiel: Code: [AUSKLAPPEN] Global zahl1 = 0 Global zahl2 = 0 Global zahl3 = 0 test1(zahl1,zahl2) zahl3 = test2() Print zahl1 Print zahl2 Print zahl3 Function test1(var1,var2) var1 = 2 var2 = 2 End Function Function test2() Return 1 End Function Ergebnis: Zahl1 und Zahl2 beinhalten weiter den Wert "0". Der Wert von Zahl 3 beträgt nach dem Funktionsaufruf "1". Bei C++ wäre es dank Zeigervariablen möglich die Speicheradressen von Zahl1 und Zahl2 an die Funktion "test1" zu übergeben, dadurch wäre es möglich die Werte beider Variablen mit einem Funktionsaufruf und ohne "Return"Wert zu bearbeiten. Habe ich mich verständlich ausgedrückt? ![]() |
||
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, ist schon klar. Musst kein Beispiel schreiben ![]() Code: [AUSKLAPPEN] Global zahl1 = 0
Global zahl2 = 0 Global zahl3 = 0 test1() zahl3 = test2() Print zahl1 Print zahl2 Print zahl3 Function test1() zahl1 = 2 zahl2 = 2 End Function Function test2() Return 1 End Function Musst du dann eben so machen. Leg dir dann doch einfach 2 oder 3 Variablen namens "FunctionReturn1" etc. an, dann kannst du es ja irgendwie nutzen. Es geht nur nicht so, wie du es aus C++ kennst ![]() Hier ist dein Code nochmal, etwas flexibler: Code: [AUSKLAPPEN] Global FunctionReturn1
Global FunctionReturn2 zahl4 = test1(5,9) zahl2 = FunctionReturn1 zahl1 = FunctionReturn2 zahl3 = test2() Print zahl1 Print zahl2 Print zahl3 Print zahl4 Function test1(var1,var2) FunctionReturn1 = 325 FunctionReturn2 = 23552 return 15 End Function Function test2() Return 1 End Function Oder? |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gibt es in B3D kein Call-By-Reference?
Also so ein "Var" hinter den Argumenten zu schreiben? (was in BlitzMax so is) So ähnlich: Code: [AUSKLAPPEN] Function test1(var1 var,var2 var)
var1 = 2 var2 = 2 End Function ??? Gruß, FOODy PowerProgrammer hat Folgendes geschrieben: Nein, gibt es nicht. Sonst hätte Gray Fox ja keine Probleme Wink
Nur BB hat sowas mal wieder nicht, selbst bei PHP gibt es Call by Reference... Das ist ja blöde ![]() Jedenfalls für die "alten" Blitzer ![]() |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
- Zuletzt bearbeitet von FOODy am Do, Nov 30, 2006 17:35, insgesamt einmal bearbeitet
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, gibt es nicht. Sonst hätte Gray Fox ja keine Probleme ![]() Nur BB hat sowas mal wieder nicht, selbst bei PHP gibt es Call by Reference... |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
Gray Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So leicht abgewandelt wie PPs es vorgeschlagen hat:
Code: [AUSKLAPPEN] Global fr1 Global fr2 zahl = 0 test(zahl) zahl = fr1 Print zahl Function test(var) fr1 = var +5 End Function Funktioniert auch. Mir ist aber nur "unwohl" dabei. Sieht halt für mich aus wie geknuppt. Außerdem könnte es bei größeren Projekten teilweise unübersichtlich werden. Schade, dass es sowas net gibt :/ |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst allenfalls
1. einen Type zurückgeben der in seinen Fields die veränderten Werte enthält. 2. einen String zurückgeben der die einzelnen Rückgabewerte mit einem Separatorzeichen getrennt enthält. Der String muss dann nachbearbeitet und zurückgecastet werden. 3. Eine Bank anlegen welche die Zielwerte an festgelegten Positionen enthält. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Gray Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit Types habe ich es nicht so ^^
Werde es mal mit "Bank" probieren. Find es aber schade, dass solch interessante Funktionen nicht eingebaut wurden. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Blitz wurde auf Beginnerfreundlichkeit und Sicherheit in der Bedienung konzeptioniert. Daher keine Pointer. Es ist eben sehr Basic: leicht zu nutzen aber bei weitem nicht so mächtig wie C. Wenn Du Pointer und solche Spässe brauchst nimm Bmax.
Allerdings: Wenn Du dich bemühst Types zu verstehen wirst Du auch schon viel mächtigere Programme haben. Types entsprechen Structs in C, welche in einer globalen verketteten Liste gespeichert sind. (Unter BMax sind Types dann (fast) wie Klassen.) |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Gray Fox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm werde es einfach mal ausprobieren ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group