Frage zu Structuren und Proceduren

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Frage zu Structuren und Proceduren

Beitrag von KeyKon »

Ich bin seit langem mal wieder an einem etwas größeren Projekt in PB dran und wollte es recht Übersichtlich halten.
Nun einige Grundlegende Fragen, ich weis nicht ob ich mich blöd anstell oder ob es einfach nicht unterstützt wird:
- Ist es möglich strukturierte Variablen an Prozeduren zu übergeben?
- Ist es möglich eine strukturiere Variable mit ProcedureReturn zurückzugeben?
- Ist es möglich nur Referenzen von Strukturen/Variablen zu übergeben, damit man quasi direkt auf den Variablen arbeiten kann und sie nicht wieder zurückgeben muss?

Mich würde Grundlegend interessieren ob das geht oder wenn nicht, wie ihr solche Sachen regelt.
Hab zuletzt eben viel in OOP Sprachen gemacht, da eignet man sich doch ein etwas anderes denken an was die Strukturierung des Codes angeht^^

LG KeyKon
(\/) (°,,,°) (\/)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Frage zu Structuren und Proceduren

Beitrag von NicTheQuick »

Letzteres geht:

Code: Alles auswählen

Structure bla
	a.i
	b.i
EndStructure

Procedure blubb(*var.bla)
	*var\a + *var\b
	*var\b = 2
EndProcedure

Define.bla foo

foo\a = 4
foo\b = 3

blubb(foo)  ;oder blubb(@foo)

Debug foo\a
Debug foo\b
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Frage zu Structuren und Proceduren

Beitrag von ts-soft »

- Ist es möglich eine strukturiere Variable mit ProcedureReturn zurückzugeben?
Nein, man kann nur den Pointer zurückgeben.

Die restlichen Fragen sollten mit diesem Beispiel erklärt sein:

Code: Alles auswählen

EnableExplicit

Structure KeyKon
  member1.i
  member2.string
  member3.f
EndStructure

Procedure Foo(*bla.KeyKon)
  Debug *bla\member1
  Debug *bla\member2\s
  Debug *bla\member3
  
  *bla\member1 = 1
  *bla\member2\s = "Text aus Foo"
  *bla\member3 = 2 * #PI
EndProcedure

Define test.KeyKon
test\member1 = 4711
test\member2\s = "Dies ist ein Test"
test\member3 = #PI

Foo(@test)
Debug ""
Debug test\member1
Debug test\member2\s
Debug test\member3

Gruß
Thomas

/ NicTheQuick war schneller
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Frage zu Structuren und Proceduren

Beitrag von KeyKon »

Danke euch beiden für die megaschnelle Antwort!
Genau das hab ich gesucht!
(\/) (°,,,°) (\/)
Antworten