【发布时间】:2021-03-27 05:10:16
【问题描述】:
我正在努力解决一个问题,希望有人可以帮助我。
我有一个这样的结构:
struct example {
char *name;
int (*func1)(int x, char c, double z);
int (*func2)(int x, float y, char c);
}example;
所以我得到了 2 个带有参数列表的函数指针。就我而言,我想使用一组不同的参数来调整这些函数,具体取决于变量“name”的值的名称。
我需要在我的结构中包含这些函数指针,我也不能只向其中添加其他函数。有谁知道如何实现它?
BR
【问题讨论】:
-
请张贴实际代码。
*char name;显然是语法错误,所以贴出来的代码不会编译。你的意思是char *name;?还有哪些不同之处? -
坦率地说,我怀疑我们正在查看meta.stackexchange.com/questions/66377/what-is-the-xy-problem,并且您的实际问题的答案可能是“使用 C++”。如果不是答案,恐怕,可能是“你描述的那些限制是不可能的”。两者都意味着您应该尝试退后一步,并尝试通过做您描述的事情来描述您想要实现的目标。
-
@TomKarzes 基本上是对的。但是在这里展示的最好的东西是minimal reproducible example,它展示了你想要做什么,你有什么问题,或者最好两者兼而有之。 (汤姆,我假设您知道将
[mre]输入到像您这样的适当 cmets 的神奇快捷方式。) -
"我想用一组不同的参数调整这些函数"是什么意思?您是说要根据
name的值调用func1或func2? -
我可能误解了这个问题,但您似乎只想要
if(strcmp(example.name, "foo")) {example.func1(x, c, z); } else { example.func2(x, y, c);}
标签: c function pointers struct parameters