2016-05-26 13 views
3

zu verwenden Ich brauche eine Funktion zu erstellen, in dem es ein Argument Standard ist:einfachste Weg, Standardargument in C

void func (int a, int b = 1); 
// and 
func (1, 2); 
func (1); 
+0

Ich verstehe nicht Ihre Funktion, was meinst du? – geekInThePink

+1

@geekInThePink es ist wie Standard-Argumente in C++ –

Antwort

5

C nicht Standardargumente nicht unterstützt, obwohl man manchmal so etwas wie sie mit dem Präprozessor hacken:

void func(int a, int b); 
#define TWO_ARGS(A, B, ...) A, B 
#define func(...) func(TWO_ARGS(__VA_ARGS__, 1)) 

func(1, 2); /* calls func(1, 2); */ 
func(1);  /* calls func(1, 1); */ 
5

Es ist wirklich einfach. Es gibt kein Standardargument in , der Code ist ungültig. Sie können immer verwenden, das Standardargumente hat und sehr nützlich ist. Aber in gibt es keine Möglichkeit, das zu erreichen.

Verwandte Themen