我有一个功能,我想通过各种功能
int func1(char *ptr)
{
printf("%s",ptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和其他我想调用func1的函数
int func2(void *i)
{
//call i
//here i point to function func1
//and do something with return value of i
}
Run Code Online (Sandbox Code Playgroud)
那么,我应该如何在main()中调用它?
int main()
{
void *d;
//SOMETHING wrong in next four line
d=&func1("abcd");
func2(d);
d=&func1("xyz");
func2(d);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
小智 4
您可以简单地创建一个函数 ( func2),它接受一个指向您要调用的所需函数的函数指针,以及另一个接受指向您的字符串的指针的参数。然后用参数func2调用传入的函数指针str。
#include <stdio.h>
void func1(const char *str)
{
puts(str);
}
void func2(void (*fp)(const char *), const char *str)
{
fp(str);
}
int main(void)
{
const char *str = "Hello world.";
func2(func1, str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)