gpt4 book ai didi

c++ - 函数指针类型不能用于函数原型(prototype)

转载 作者:搜寻专家 更新时间:2023-10-31 00:51:16 25 4
gpt4 key购买 nike

我想知道为什么以下代码段不起作用:

typedef void (*MYFUNC_PTR)(int a);
MYFUNC_PTR myFunc;

void myFunc(int a)
{

}

我使用的是 Microsoft Visual Studio 2017。源文件是“.c”,但我尝试使用“.cpp”。我得到的错误是

Error   C2365   'myFunc': redefinition; previous definition was 'data variable' 

注意:我认为这段代码可以工作,因为 Microsoft 提到了一个类似的片段(它也不起作用,因为我也测试了那个片段),例如 here .

编辑:我认为这可能只适用于较新的 C++ 标准之一,但事实并非如此,因为我尝试了 C++17。

最佳答案

函数指针与函数声明不同,所以这根本行不通。但是,您可以这样做:

typedef void(*MYFUNC_PTR)(int a);
MYFUNC_PTR myFunc;

void someFunc(int a)
{

}

int main() {
myFunc = someFunc;
return 0;
}

关于c++ - 函数指针类型不能用于函数原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55646844/

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