我想知道以下代码中的(*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 中声明为,但在该 header 中未声明,但从未使用此函数指针调用,但很可能使用ilm_layerSetOpacity
进行了调用一个简单的比喻是:
int a = 10;
int *p1; //Uninitialized pointer
int *p2 = &a; //pointer pointing to a
在您的情况下,
a
是ilm_layerSetOpacity
,而p1
是layerSetOpacity
,而p2
不存在HTH!