the*_*man 1 c++ linux gcc function-pointers
我有一种偷偷摸摸的感觉,由于编译器,这可能是一个问题.
void SetRenderFunction(void (&newRenderFunction(void)));
这导致GCC宣称我"不能声明对'void'的引用"
现在,我在Windows上的Visual Studio下使用了相同的函数原型(或多或少).在Windows上我有一个不同的函数名称,而不是传递指向一个取消void的函数的指针,它指向我需要的其他一些对象.
如果我使用*而不是&它可以防止这个问题,但是当我尝试传入函数指针时,我会遇到类型转换问题:它试图将它void (*)()转换为void* (*)()
谢谢.
嗯......它是由其他人间接回答的.感谢Alf和Abyx,我注意到我做错了什么,但因为他们都或多或少地同时发布,并且他们都没有动手说出错是什么,只是说什么是正确的做法我做的尝试,我将以旧的自我答案.
我的函数调用是:
void SetRenderFunction(void (&newRenderFunction(void)));
错误的一点在这里 - - - - - - - - - - - - - - - - - - - - - ^和 - ^
我应该放置一组括号&newRenderFunction和这个函数指针的参数.像这样:
void SetRenderFunction(void (&newRenderFunction)(void));
解决方法就在这里 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ^ - - - - - ^