void*(*void)(void*) 代表什么?

What does void*(*void)(void*) stands for?

有什么区别
void*(*void)(void*) 

void*(*voi)(void*)

什么时候使用它?

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

你也不能声明一个名为 void 的 int(int void=5; 当然不行)。

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

试图了解您实际询问的内容之间的区别。

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

然而,当声明函数指针时需要括号,否则 * 将绑定到 return 类型。

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