在C语言中从数组调用函数
我试图从数组调用函数Greeting。有人能给我一个提示,或者指导我看一段视频或者在线阅读吗。谢谢在C语言中从数组调用函数,c,C,我试图从数组调用函数Greeting。有人能给我一个提示,或者指导我看一段视频或者在线阅读吗。谢谢 int Greeting() { printf("Hello, World!\n"); return 0; } int process[]={0,0,&Greeting,0,0,0}; int main() { process[2]; return 0; } 您的进程是一个int数组。您需要使它成为一个函数指针数组 int (*process[])(v
int Greeting()
{
printf("Hello, World!\n");
return 0;
}
int process[]={0,0,&Greeting,0,0,0};
int main()
{
process[2];
return 0;
}
您的
进程
是一个int
数组。您需要使它成为一个函数指针数组
int (*process[])(void) = {0, 0, Greeting, 0, 0, 0};
然后间接调用函数
process[2]();
一个简单的示例,其中首先在结构中创建两个函数指针,然后创建三个函数。使用要调用的函数初始化函数指针,然后传递参数以完成工作
#include <stdio.h>
typedef struct
{
/* Any function who take two int parameters and returns int can be pointed by this function pointer. */
int (*function_name)(int a, int b);
/* This can point to all functions having int argument and void return type */
void (*print_fn)(int sum);
} FN_GROUP;
int add(int a, int b)
{
return (a + b);
}
int subtract(int a, int b)
{
return (a - b);
}
void show(int num)
{
printf("Result:%d\r\n", num);
}
int main()
{
int num1 = 20;
int num2 = 10;
int result = 0;
FN_GROUP group;
/* Initialize the pointers with add() and show() functions. */
group.function_name = &add;
group.print_fn = &show;
/* Now call these functions. */
result = group.function_name(num1, num2);
group.print_fn(result);
/* Initialize the pointers with subtract(). */
group.function_name = &subtract;
/* Now call these functions again */
result = group.function_name(num1, num2);
group.print_fn(result);
return (0);
}
#包括
类型定义结构
{
/*任何接受两个int参数并返回int的函数都可以被该函数指针指向*/
int(*函数名称)(int a,int b);
/*这可以指向所有具有int参数和void返回类型的函数*/
无效(*打印内容)(整和);
}FN_组;
整数相加(整数a,整数b)
{
返回(a+b);
}
整数减法(整数a,整数b)
{
返回(a-b);
}
无效显示(整数)
{
printf(“结果:%d\r\n”,num);
}
int main()
{
int num1=20;
int num2=10;
int结果=0;
FN_组;
/*使用add()和show()函数初始化指针。*/
group.function_name=&add;
group.print_fn=&show;
/*现在调用这些函数*/
结果=组.函数名称(num1,num2);
组。打印fn(结果);
/*使用减法()初始化指针。*/
group.function_name=&subtract;
/*现在再次调用这些函数*/
结果=组.函数名称(num1,num2);
组。打印fn(结果);
返回(0);
}
您有一个整数数组。您需要一个函数指针数组,然后才能存储和调用该函数。启用所有编译器警告-它将提供许多提示并节省您的时间。您不需要在问候语之前使用&
。函数名衰减为指向函数的指针。