gpt4 book ai didi

c - 传递带有可变参数的函数作为空指针,并调用它

转载 作者:太空狗 更新时间:2023-10-29 14:57:37 30 4
gpt4 key购买 nike

我有一个函数,我想通过各种函数传递

int func1(char *ptr)
{
printf("%s",ptr);
return 0;
}

和我想在其中调用 func1 的其他函数

int func2(void *i)
{
//call i
//here i point to function func1
//and do something with return value of i
}

那么,在main()中应该怎么调用呢?

int main()
{
void *d;
//SOMETHING wrong in next four line
d=&func1("abcd");
func2(d);
d=&func1("xyz");
func2(d);
return 0;
}

最佳答案

您可以简单地创建一个函数 (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;
}

关于c - 传递带有可变参数的函数作为空指针,并调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14974076/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com