初始化函数指针时出现问题
Problem while initializing function pointer?
我有函数指针如下
void (*stream) (const char *)
,并按如下方式初始化指针:
char dumpBuffer[512];
snprintf (dumpBuffer, sizeof (dumpBuffer), "<Pcm_DigitalIoChannelList>n");
stream (dumpBuffer);
谁能告诉我这是正确的?要初始化该指针,必须为其分配具有兼容签名的函数地址:
void foo(const char *) {
// do stuff
}
void (*stream) (const char *) = &foo;
也可以,因为函数会自动提升为指针:
void (*stream) (const char *) = foo;
你可以像上面那样使用
不完全是这样,通常你必须像这样定义函数指针:
typedef void (*stream) (const char*);
然后赋值给函数:
stream myStream = &somefunction;
那么你可以直接运行它:
myStream(pSomeBuffer);
相关文章:
- Visual Studio中的函数声明和函数定义问题
- C++quit()函数中可能存在作用域问题
- 类似于strcat()的函数出现问题
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 类C++中的函数问题(LNK2019和LNK1120错误)
- c++binary_search函数排序数组(流行名称搜索)出现问题
- 关于简单C++函数(is_palindrome)的逻辑的问题
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- constexpr构造函数需要常量成员函数时出现问题
- 添加存储在向量中的大整数的函数出现问题
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 关于 c++ 函数中指针赋值的简单问题
- 如何在标头中声明(或定义)函数的问题
- 有关 c++ 构造函数的问题
- 模板类转换问题 - 无法推断调用的函数
- 从 C++ 中的函数返回数组地址问题
- 关于复制构造函数的一个棘手问题
- 移动赋值运算符;尝试引用已删除的函数.我该如何解决这个问题?
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题