C 定义中的先例括号

precedence parenthesis in C++ definitions

本文关键字:定义      更新时间:2023-10-16

为什么C 中的以下代码是非法的?

(int) foo()
{
    return 0;
}

毕竟,

中的第一个括号
int( * foo )();

建议可以在声明中使用括号。

no,第二个示例中的括号没有建议。它只是一种语法构造,意思是"这是函数的指针"。它不依赖优先级。

代码是非法的,因为在您可以声明函数的上下文中没有(的表达式(即:全局范围,类范围或名称空间范围)。