我正在使用第三方库(包含我无法编辑的代码!),它具有一个带有大量参数的函数.使用它看起来有点像这样:
void func(int a, int b, int c, int d, int e) {
//do something...
}
int main(void) {
func(1, 2, 3, 4, 5);
}
Run Code Online (Sandbox Code Playgroud)
但是,它需要这些参数并立即抛弃它们.我想坚持这些论点并将其用于其他事情.什么我喜欢做的是一样的东西:
void func(int a, int b, int c, int d, int e) {
//do something...
}
typedef struct foo foo;
struct foo {
int a;
int b;
int c;
int d;
int e;
};
foo bar = {1, 2, 3, 4, 5};
int main(void) {
func(bar);
}
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这会引发类型错误:
main.c:17:8: error: incompatible type for …Run Code Online (Sandbox Code Playgroud) c ×1