在.h文件中有一个接受此参数的函数:
void (^callback)(float * arg)=NULL
在函数定义中:
void func(void (^callback)(float * arg)=NULL);
我能够读到的是它需要一个函数指针,如果没有定义它会覆盖NULL。我没有得到的部分是^ in(^ callback)。我只知道^作为一个按位XOR运算符。 它还会在我的VS2012编译器中产生问题(与CLR一样)。所以我真的想把这部分改写成别的东西,没有按位运算符...
有人有一些想法或能够解释这行代码吗?
答案 0 :(得分:0)
如评论中所述,^
是C ++ / Cli功能。所以首先你必须决定你想做纯C ++还是C ++ / Cli。
您的函数的C ++(非C ++ / Cli)版本可能如下所示
void func(void (*callback)(float * arg)= nullptr)
{
if (callback)
{
float c = 1.0;
(*callback)(&c);
}
}
编辑:我承认我不知道原始^callback
的目的是什么。因为
void func(void (^callback)(float * arg)= nullptr)
{
// ...
}
不为我编译。如果没有float *
,它仍然无法编译。