我有一个静态函数回调
:
static SCDynamicStoreCallBack callback( [params] ){ ... }
在main
中,我正在调用
createIPAddressListChangeCallbackSCF(callback, manager, &storeRef, &sourceRef);
该函数需要一个回调函数作为参数传递。但是,当我尝试编译时,出现错误
error: ‘callback’ was not declared in this scope
callback
在文件的根目录中声明。我应该如何从 main
引用它?
最佳答案
我认为问题在于callback()没有与main()在同一个文件中定义。
静态函数(和变量)在文件中不可见,即使有原型(prototype)或外部声明也是如此。因此,回调()必须移动到与 main()相同的文件,否则它必须失去其静态性。
如果两个函数位于同一个文件中,则必须首先定义callback(),或者在main()之前必须有它的原型(prototype)/声明。
关于c++ - 如何引用静态函数作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7659400/