Funktion mit default Paramtern
-
hallo,
Habe eine Funktion die mehrmals verwendet wird, ich sie aber in einer Form brauche wo ich ihr einen Funktionsparamter mehr übergebe. Geht das irgendwie ?
#include <stdio.h> #include <stdlib.h> // diese Funktion mit optionalen Paramtern erweitern int func(int a, int b) { return a+b; } // Habe mir soerwas vorgestellt int func1(int a,int b,int c = 0) { return (a+b+c); } // Hier soll kein Fehler geworfen. Egal ob man 2 oder 3 Parameter mitgibt. int main(void) { int a = func1(12,5); // 1.)Irgendwie möglich ? a = func1(12,5,3); // 2.)Irgendwie möglich ? return EXIT_SUCCESS; }
-
Das geht nicht mit C. Dafür brauchst Du C++ (bzw. einen C++ - Compiler).
-
Das geht in C nicht (aber in anderen Sprachen, wie z.B. C++, durchaus). Du wirst dich mit einer der folgenden Möglichkeiten begnügen müssen (was genau passt, hängt davon ab, was du genau vor hast):
- Zwei verschiedene Funktionen mit unterschiedlichem Namen. Die eine Funktion kann evtl. die andere aufrufen:
int add3(int a, int b, int c) { return a+b+c;} int add2(int a, int b) { return add3(a,b,0); }
- Eine Funktion mit beliebig vielen Parametern via Ellipse a la printf. Ein nicht gegebenes Argument wird dann eben als Defaultargument betrachtet
- Eine Funktion mit beliebig vielen Parametern, aber ohne Ellipse, a la qsort. Das sind zwar nicht im direkten Sinne beliebig viele Funktionsparameter, aber durch die Angabe von Anfang und Anzahl, kann die Funktion auf einem beliebig großen Satz von Daten arbeiten.
- Ein kompliziertes Gefrickel mit void*, welches im Prinzip da drauf hinaus liefe, sich seine eigene Ellipse nach zu programmieren.