c++ - 如何引用静态函数作为参数传递?

标签 c++ scope compiler-errors

我有一个静态函数回调:

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/

相关文章:

c++ - 将指针指向的数据复制到另一个指针

c++ - 如何用 O(n) 时间和 O(1) 空间对包含 n 个对象的组进行排序。每个对象有两个字段 : int and string.

javascript - 确定 JavaScript 闭包中可访问的变量集

php - 从另一个函数的范围访问变量?

c - 将 'void'传递给不兼容类型 'const char *'的参数?

c++ - 如何根据固定的循环频率正确协调线程?

c++ - 使用 Nvidia NPP 调整图像大小时出现未记录的调整大小错误

c++ - C : var was not declared in this scope

c++ - 铛坚持编译未调用的函数

c# - 数组C#错误Unity3D