在下面的代码中,我使用一个指针来运行一个函数,该函数的变量是一个结构体的变量。当我运行函数 (*foo)(numbers)
时,我收到消息 "24:1: warning: parameter names (without types) in function declaration [enabled by default]"
并且如果我将结构的名称与变量 (*foo)(sum_elements numbers)
放在一起,我会收到很多错误没有收到警告消息缺少什么?
#include<stdio.h>
struct sum_elements{ //structure declaration
int number1,number2,sum_result,*foo;
}numbers;
void Sum_operator(struct sum_elements numbers){ //structure's function declaration
numbers.sum_result = numbers.number2 + numbers.number1;
printf("The sum is %d",numbers.sum_result);
}
int main(){
printf("Enter first number: ");
scanf("%d",&numbers.number1);
printf("Enter second number:");
scanf("%d",&numbers.number2);
void (*foo)(numbers); //pointer to function declaration
foo = &Sum_operator;
(*foo)(numbers);
}
最佳答案
像这样声明函数指针,参数类型:
void (*foo)(struct sum_elements);
关于c - 运行函数的指针,其中变量是结构的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827071/