Funktion mit Variabler Parameter-Anzahl?
Übersicht

CO2ehemals "SirMO"Betreff: Funktion mit Variabler Parameter-Anzahl? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich brauche mal wieder Hilfe, und zwar: Bei einer Funktion bräuchte ich eine variable Anzahl an Parametern wie in C++: Code: [AUSKLAPPEN] #include <iostream> #include <stdarg.h> // Deklaration einer Funktion mit einem verlangten Parameter void ZeigeParameter(int number, ...); int main() { int Index = 5; int Eins = 1, Zwei = 2; ZeigeParameter(Eins, Index); ZeigeParameter(3, Index, Index + Zwei, Index + Eins); ZeigeParameter(Zwei, 7, 3); return 0; } void ZeigeParameter(int Zahl, ...) { va_list ParameterZg; va_start(ParameterZg, Zahl); // Aufruf an Initialisierungmakro std::cout << "Die Parameter sind "; for (int Index = 0 ; Index < Zahl ; Index++) { std::cout << va_arg(ParameterZg, int) << " "; // Extrahiere einen Parameter } std::cout << "\n"; va_end(ParameterZg); // Schliessmakro } // Ergebnis beim Ausführen // // Die Parameter sind 5 // Die Parameter sind 5 7 6 // Die Parameter sind 7 3 Gibt es sowas auch bei BB? (Ich möchte möglichst keine Types verwenden, da die Funktion auch bei anderen Programmen funktionieren soll.) thx schonmal im vorraus, mfg SirMO |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
faeX |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geht leider nicht.
Kannst aber in einem String die Parameter die übergeben möchtest mit einem Komma oder so getrennt übermitteln. (Macht ToeB in seiner SimpleUDP2 auch so.) |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Variabel geht nicht.
Aber du könntest, wenn du weisst, wie viele es maximal sind, halt genügend optionale Parameter einbauen. Oder als Übergabeparameter ein Blitz-Array entgegennehmen (wobei ich mir aber absolut nicht sicher bin, ob dir das die gewünschte Flexibilität bringt). mfG Holzchopf |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nur eingeschränkt: Du kannst Parameter durch einen Defaultwert optional machen:
function Bla(a,b=-1,c=3) Damit lässt sich die Funktion mit einem - drei Parametern aufrufen. Allerdings ist die Reihenfolge und der Typ der Parameter festgelegt. Echte Funktionsüberladung bietet BB leider nicht. |
||
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 |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja ok, dann werd ich wohl wirklich Default-Werte eingeben, oder - im schlimmsten Fall - Types benutzen ![]() thx für die schnelle hilfe |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group