我试图理解这意味着什么,我正在查看的代码有
在.h
typedef void (*MCB)();
static MCB m_process;
在.C
MCB Modes::m_process = NULL;
有时当我这样做时
m_process();
我遇到段错误,可能是因为内存被释放,释放内存后如何调试?
最佳答案
它定义了一个函数指针类型。函数返回 void,并且未指定参数列表,因为问题(当前但可能错误地)标记为 C;如果它被标记为 C++,那么该函数将根本不带任何参数。要使其成为不带参数的函数(在 C 中),您可以使用:
typedef void (*MCB)(void);
这是 C 与 C++ 之间存在显着差异的领域之一,C 尚未要求所有函数在定义或使用之前都进行原型(prototype)设计,而 C++ 则这样做。
关于c++ - "typedef void (*Something)()"是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46582468/