【问题标题】:What does void*(*void)(void*) stands for?void*(*void)(void*) 代表什么?
【发布时间】:2016-01-10 16:37:46
【问题描述】:

和有什么区别

void*(*void)(void*) 

void*(*voi)(void*)

什么时候使用它?

【问题讨论】:

  • 我看不出有什么不同,除了错字(voi)
  • 你没有错字吗:'voi' 而不是 'void'?
  • 好吧,void*(void)(void) 无法编译,因为它试图声明一个返回名为 voidvoid* 的函数,并且您不能使用该语言的关键字作为名称。
  • 格式导致 * 丢失
  • @SamiKuhmonen 你放了更多东西,那是 OP 中没有的。这就是我回滚的原因。

标签: c++ void void-pointers


【解决方案1】:

void*(void)(void) 无法编译,因为它试图声明一个返回名为 void 的 void* 的函数,并且您不能使用该语言的关键字作为名称。

您也不能声明一个名为 void 的 int(int void=5; 当然不起作用)。

现在voi 是一个有效标识符,您可以将函数命名为voi

试图了解您实际询问的区别。

void(*name)(void);void(name)(void);是一个声明一个函数,另一个声明一个函数指针。
事实上,第二个例子中的括号并没有做任何事情。 void(name)(void);void name(void); 相同。

但是,当声明函数指针时,需要括号,否则* 将左绑定到返回类型。

无论如何,我不确定您到底在问什么,因此您最好在网站上搜索有关函数指针的其他问题。就像this one 一样,这也解释了为什么使用void(name)(void) 可能与void(name)() 不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多