小编Sam*_*gen的帖子

你能将一个函数参数结构传递给一个函数吗?

我正在使用第三方库(包含我无法编辑的代码!),它具有一个带有大量参数的函数.使用它看起来有点像这样:

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

2
推荐指数
1
解决办法
80
查看次数

标签 统计

c ×1