c - 运行函数的指针,其中变量是结构的变量

标签 c function pointers struct

在下面的代码中,我使用一个指针来运行一个函数,该函数的变量是一个结构体的变量。当我运行函数 (*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/

相关文章:

c - scanf 读取带整数的加号,但不读取减号、乘法或除法

javascript - 定义 javascript 函数同时引用局部变量

pointers - 将 map 的值指针添加到 slice 的行为

c - 为什么 printf 适用于未终止的字符串

c - 使用 strcpy 时打印垃圾

c - 当我们将数组传递给函数时,复制是如何工作的?

javascript - 将值传递给 JQuery 中的函数和变量范围

C:使用指针打印出数组每个元素的值和内存位置?

delphi - 使用 1 个数据副本同步多个 VirtualStringTree

c++ - 使用 strcpy 时重复出现段错误