0
typedef double func(double)
头和一个叫
double function(func f);
头函数声明这是定义做一些相应的.C文件。因此,访问此我有一个包含
#include"necessaryheader.h"
double f(double x){
return 1.0;
}
int main(){
func f;
double x = function(f);
std::cout << x << std::endl;
}
文件MAIN.C但是,当我试图编译这个它抛出一个错误
undefined reference to `function(double (*)(double))'
这是为什么,是不完全的类型'function(func f)'作为参数? 更好的问题是如何让这些类型匹配?
您的“标题中的函数”只是一个声明,而不是一个定义。错误是说你从来没有定义函数,所以链接器不知道该调用什么。这不是类型不匹配。 –
该功能在相应的.C文件中被适当地定义。 – Escap3faith
@ Escap3faith但是,你真的编译该文件并将生成的obj文件链接到最终的可执行文件吗?这听起来像你没有这样做。 –