gpt4 book ai didi

c++ - "typedef void (*Something)()"是什么意思

转载 作者:行者123 更新时间:2023-11-30 16:40:36 31 4
gpt4 key购买 nike

我试图理解这意味着什么,我正在查看的代码有

.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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com