C++ 使用函数指针在函数实现之间切换
我有两个版本的C函数,它们在速度和内存使用方面相互权衡。这些函数位于跨多个程序共享的.cpp文件中。我想使用一个函数指针,这样我就可以在两个实现之间来回切换,并使这些更改在我的程序中的所有文件中进行 组合h(摘录) composition.cpp(摘录) 输出为:C++ 使用函数指针在函数实现之间切换,c++,c,function-pointers,C++,C,Function Pointers,我有两个版本的C函数,它们在速度和内存使用方面相互权衡。这些函数位于跨多个程序共享的.cpp文件中。我想使用一个函数指针,这样我就可以在两个实现之间来回切换,并使这些更改在我的程序中的所有文件中进行 组合h(摘录) composition.cpp(摘录) 输出为: Lookup Recursive 为什么foo函数不使用chooseLookup而不是chooseRecursive?我该如何解决这个问题?有没有更好的方法可以实现同样的目标 提前感谢您的帮助 目前情况下,包含组合.h的每个.cpp
Lookup
Recursive
为什么foo函数不使用chooseLookup而不是chooseRecursive?我该如何解决这个问题?有没有更好的方法可以实现同样的目标
提前感谢您的帮助 目前情况下,包含组合.h的每个.cpp文件都有自己的
静态变量选择。main
中的代码更新main.cpp的副本,但不更新Combination.cpp中的版本
解决此问题的一个简单方法是更改组合。h将选择声明为extern
extern long (*choose)(int, int);
然后在composition.cpp中实现/初始化此功能
long (*choose)(int, int) = chooseRecursive;
目前,每个包含组合.h的.cpp文件都有自己的static
variablechoose
。main
中的代码更新main.cpp的副本,但不更新Combination.cpp中的版本
解决此问题的一个简单方法是更改组合。h将选择声明为extern
extern long (*choose)(int, int);
然后在composition.cpp中实现/初始化此功能
long (*choose)(int, int) = chooseRecursive;
目前,每个包含组合.h的.cpp文件都有自己的static
variablechoose
。main
中的代码更新main.cpp的副本,但不更新Combination.cpp中的版本
解决此问题的一个简单方法是更改组合。h将选择声明为extern
extern long (*choose)(int, int);
然后在composition.cpp中实现/初始化此功能
long (*choose)(int, int) = chooseRecursive;
目前,每个包含组合.h的.cpp文件都有自己的static
variablechoose
。main
中的代码更新main.cpp的副本,但不更新Combination.cpp中的版本
解决此问题的一个简单方法是更改组合。h将选择声明为extern
extern long (*choose)(int, int);
然后在composition.cpp中实现/初始化此功能
long (*choose)(int, int) = chooseRecursive;
谢谢你,这正是我所怀疑的。有没有办法让选择一个在任何地方共享的全局变量?@AndrewBaker我们的编辑必须重叠。我已经更新了我的答案,以涵盖改变选择成为全球谢谢-这就是我怀疑发生的事情。有没有办法让选择一个在任何地方共享的全局变量?@AndrewBaker我们的编辑必须重叠。我已经更新了我的答案,以涵盖改变选择成为全球谢谢-这就是我怀疑发生的事情。有没有办法让选择一个在任何地方共享的全局变量?@AndrewBaker我们的编辑必须重叠。我已经更新了我的答案,以涵盖改变选择成为全球谢谢-这就是我怀疑发生的事情。有没有办法让选择一个在任何地方共享的全局变量?@AndrewBaker我们的编辑必须重叠。我已经更新了我的答案,以覆盖<代码> >选择< /C> >为C++的全局,您可能需要查看。它允许您使用成员函数和lambda表达式。对于C++,您可能需要查看。它允许您使用成员函数和lambda表达式。对于C++,您可能需要查看。它允许您使用成员函数和lambda表达式。对于C++,您可能需要查看。它还允许您使用成员函数和lambda表达式。