Arbeiten mit variablen langen Argumentlisten (Update)
Das ende der Parameter kann man nur mit NULL erkennen oder ein Parameter übergeben, wie im Beispiel, mit der Anzahl von Parameter.
Man könnte auch den valistHelper so umschreiben das alle Parameter als Pointer übergeben werden müssen. Somit ist es dann möglich zu prüfen ob noch ein Parameter folgt.
Man könnte auch den valistHelper so umschreiben das alle Parameter als Pointer übergeben werden müssen. Somit ist es dann möglich zu prüfen ob noch ein Parameter folgt.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- 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
Das wäre doch sinnvoll. Das ich Integer und kleiner so übergeben kann, istmk-soft hat geschrieben:Man könnte auch den valistHelper so umschreiben das alle Parameter als Pointer übergeben werden müssen. Somit ist es dann möglich zu prüfen ob noch ein Parameter folgt.
doch kein Vorteil, besser alles als Pointer, da kann man nichts verkehrt
machen.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Update v1.05
Alle Argumente als Pointer übergeben
Neue Funktionen:
- va_exist(zeiger)
- va_arg_integer(zeiger)
Siehe Beispiel.
FF
Alle Argumente als Pointer übergeben
Neue Funktionen:
- va_exist(zeiger)
- va_arg_integer(zeiger)
Siehe Beispiel.
FF

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- 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
Es werden immer Pointer übergeben, keine Strings!Little John hat geschrieben:Hallo,
das ist ja interessant!
Funktioniert Deine Methode auch, wenn die Parameter in Registern übergeben werden, so wie Thomas es hier geschrieben hat?
Gruß, Little John
Hör auf zu Saufen

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- 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
Na klar, Pointer haben immer den Abstand von SizeOf(Integer), aber wasLittle John hat geschrieben:Dann müsste ja meine einfache Methode aus dem anderen Thread mit Pointern auch gehen.
Gruß, Little John
soll das bringen?
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Ich hatte Dich so verstanden, dass man die Adresse von Parametern nicht zuverlässig bestimmen kann, weil sie manchmal in Registern übergeben werden. Das war der Punkt an dem ich dachte, dass man so nicht weiter kommt. Wozu man sowas machen will ist ne ganz andere Frage.ts-soft hat geschrieben:Na klar, Pointer haben immer den Abstand von SizeOf(Integer), aber wasLittle John hat geschrieben:Dann müsste ja meine einfache Methode aus dem anderen Thread mit Pointern auch gehen.
Gruß, Little John
soll das bringen?
Gruß, Little John
- 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
Das ist vom Parametertyp abhängig, der ist hier immer gleich, ein Pointer.
Der ist auch immer gleich gross.
Der ist auch immer gleich gross.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
