c++ - 为什么括号在函数指针声明中很重要?

标签 c++ function-pointers typedef function-declaration

我不明白为什么接受下面的声明:

typedef void    (*_tStandardDeclaration)(LPVOID);

而下面的不是:

typedef void    *_tDeclarationWithoutParenthesis(LPVOID);
typedef void*   _tAlternateDeclaration(LPVOID);

我正在使用 MSVC6(我知道它已过时且非标准,但需要它来维持每年一千万的收入系统 :/)

最佳答案

指针符号默认绑定(bind)类型,所以函数指针需要括号来表示指针实际上是在名字上而不是在返回类型上。

关于c++ - 为什么括号在函数指针声明中很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4425422/

相关文章:

c++ - 从类或独立函数指向函数的函数指针

c - 为什么允许指向不完整类型的指针而不是不完整类型的变量?

c - 我应该在函数指针的 typedef 中保留 `_In_` 、 `_Out_` 之类的宏吗?

c++ - Arch Linux C++读取USB鼠标定位数据

C++ 模板函数 - 编译器错误 : 'can not change from from const char* to int'

来自堆栈分配的 C++ std::bad_alloc?

c++ - CMAKE - 调试/交叉构建?

ruby-on-rails - 如何在 Ruby 中为 new 创建一个未绑定(bind)的方法

c++ - 为什么从 lambdas 创建的 std::functions 在捕获的变量超出范围后工作?

c++ - "using"创建类型别名的论点是否已经确定?