gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:30:56 24 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++ - "typedef void (*Something)()"是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3982470/

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