c语言 函数参数默认值
时间: 2023-07-14 22:03:40 浏览: 94
在 C 语言中,函数的参数默认值是不存在的。C 语言没有提供直接设置函数参数默认值的语法。如果你想要为函数的某个参数设置默认值,可以通过函数重载或者使用结构体来实现类似的功能。
1. 函数重载:定义多个同名函数,每个函数的参数个数和类型不同,其中一些函数通过设置默认值来实现不同参数的组合。调用函数时,可以根据需要选择使用不同的参数组合。
```c
void foo(int a, int b, int c) {
// 函数体
}
void foo(int a, int b) {
foo(a, b, 0); // 调用带有默认值的函数
}
void foo(int a) {
foo(a, 0, 0); // 调用带有默认值的函数
}
void foo() {
foo(0, 0, 0); // 调用带有默认值的函数
}
```
2. 使用结构体:定义一个包含所有参数的结构体,然后将结构体作为函数的参数。在调用函数时,可以只设置需要的参数,其余参数将使用结构体中定义的默认值。
```c
struct Params {
int a;
int b;
int c;
};
void foo(struct Params params) {
// 使用 params.a、params.b、params.c 进行操作
}
// 调用示例
struct Params p = { .a = 1, .b = 2, .c = 3 };
foo(p); // 使用传入的参数值
struct Params p2 = { .a = 1, .b = 2 }; // c 使用默认值
foo(p2); // 使用传入的参数值和默认值
```
需要注意的是,这些方法并不是直接设置函数参数默认值的方式,而是通过函数重载或结构体来模拟实现类似的功能。