#include<stdio.h>
struct file{
int a;
int b;
int (*fp) (int ,int);
};
static int sum(int a, int b)
{
return(a+b);
}
void main()
{
struct file var;
int sum1=0;
var.fp=∑
sum1=fp(2,4);
printf("\nsum is %d ",sum1);
}
如何调用函数.. ??我收到一个错误称为fp的未定义引用.. ???
答案 0 :(得分:6)
由于它是结构的一员,你必须对其进行限定:
sum1 = var.fp( 2, 4 );
答案 1 :(得分:6)
您的意思是sum1 = var.fp(...)
或sum1 = (*var.fp)(...)
,但您键入了fp(...)
。 C隐式定义了一个外部fp()供您调用。编译器必须这样做才能编译遗留的C代码。
使用cc -Wall ...
为缺少的前向声明生成错误。
答案 2 :(得分:2)
您是否尝试过更改:
SUM1 = FP(2,4);
要:
SUM1 = var.fp(2,4);