我想知道在下面的代码中 (*layerSetOpacity)
是某种函数指针。我在整个存储库的任何地方都找不到引用!
ilm_client.h 中的以下代码是可以理解的,因为 ilm_layerSetOpacity
属于函数
ilmErrorTypes ilm_layerSetOpacity(t_ilm_layer layerId, t_ilm_float opacity);
但是 ilm_control_platform.h 中的这段代码令人困惑,因为带指针的括号代表什么 - 函数指针?
ilmErrorTypes (*layerSetOpacity)(t_ilm_layer layerId,
t_ilm_float opacity);
我不要求代码细节,只要求语法。
最佳答案
让我们剖析一下:- ilmErrorTypes (*layerSetOpacity)(t_ilm_layer layerId, t_ilm_float opacity)
:-
layerSetOpacity
是一个指向将 2 个参数作为输入的函数的指针- 函数的输入参数是
t_ilm_layer
和t_ilm_float
- 函数返回一个数据类型
ilmErrorTypes
事实上,您在代码库中找不到与符号 layerSetOpacity
匹配的任何内容,这意味着函数指针在 header 中声明,但从未调用 使用此函数指针,但很可能使用 ilm_layerSetOpacity
一个更简单的类比是:-
int a = 10;
int *p1; //Uninitialized pointer
int *p2 = &a; //pointer pointing to a
在您的情况下,a
是 ilm_layerSetOpacity
而 p1
是 layerSetOpacity
和 p2
不存在
HTH!
关于c++ - 相同的代码不同的语法(ilm_client.h vs ilm_control_platform.h),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44936070/