typedef 类型不匹配,将其传递到函数中

typedef type mismatch passing it into a function

本文关键字:函数 类型 不匹配 typedef      更新时间:2023-10-16

我有一个标题

typedef double func(double)

以及标头中的函数声明,称为

double function(func f);

这被定义为在相应的 .C 文件。因此,要访问此内容,我有一个文件主。包含 C

#include"necessaryheader.h"
double f(double x){
  return 1.0;
}
int main(){
  func f;
  double x = function(f);
  std::cout << x << std::endl;
}

但是当我尝试编译它时,它会抛出一个错误

undefined reference to `function(double (*)(double))'

为什么会这样,这不正是"函数(func f("作为参数的类型吗?一个更好的问题是如何使类型匹配?

typedef double func(double)

应该是

typedef double (*func)(double);

并确保链接到包含function()的实际实现的源文件。

而且您需要摆脱main()中的func f;声明.