在 C 语言中,有没有一种方法可以指定函数的默认参数?
在 C 语言中,有没有一种方法可以指定函数的默认参数?
在纯C中,您不需要使用VARARGS。这里有一个例子。
int funcA_12(int a1, int a2) { ... }
#define funcA(a1) funcA_12(a1, 0)
这个答案与上面的两个函数方法非常相似,但是在这种情况下,您使用宏来定义参数的函数名称。
是的,你可以做类似的事情,这里你需要知道不同的参数列表,但你有相同的函数来处理它们。
typedef enum { my_input_set1 = 0, my_input_set2, my_input_set3} INPUT_SET;
typedef struct{
INPUT_SET type;
char* text;
} input_set1;
typedef struct{
INPUT_SET type;
char* text;
int var;
} input_set2;
typedef struct{
INPUT_SET type;
int text;
} input_set3;
typedef union
{
INPUT_SET type;
input_set1 set1;
input_set2 set2;
input_set3 set3;
} MY_INPUT;
void my_func(MY_INPUT input)
{
switch(input.type)
{
case my_input_set1:
break;
case my_input_set2:
break;
case my_input_set3:
break;
default:
// unknown input
break;
}
}
为什么我们不能这样做。
给可选参数一个默认值。这样,函数的调用者不一定需要传递参数的值。该参数采用默认值。 这个参数很容易变成客户端的可选项。
例如:
void foo(int a, int b = 0);
这里b是一个可选参数。