我的函数指针如下
void (*stream) (const char *)
并初始化指针如下:
char dumpBuffer[512];
snprintf (dumpBuffer, sizeof (dumpBuffer), "<Pcm_DigitalIoChannelList>\n");
stream (dumpBuffer);
可以告诉我是否正确?
提前致谢。
答案 0 :(得分:3)
要初始化此指针,您必须为其分配具有兼容签名的函数的地址:
void foo(const char *) {
// do stuff
}
void (*stream) (const char *) = &foo;
这也可以,因为函数会自动提升为指针:
void (*stream) (const char *) = foo;
然后你可以在上面显示它。
答案 1 :(得分:2)
不完全,通常你必须定义函数指针,如:
typedef void (*stream) (const char*);
然后将其分配给一个函数:
stream myStream = &somefunction;
然后你可以简单地运行它:
myStream(pSomeBuffer);