这两个声明在c中有什么区别?

yoy*_*oyo 4 c syntax

typedef int (*P)(char *(*)());

int (*P)(char *(*)());
Run Code Online (Sandbox Code Playgroud)

两者似乎对我做同样的事情,那是什么typedef

cdh*_*wie 9

第一个声明了一个名为P 的类型,您可以在其他变量的声明中使用它.第二个声明了相同类型的变量.

出于说明目的:

typedef int (*P)(char *(*)());

int main() {
    int (*Q)(char *(*)());
    P R;
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,变量QR类型完全相同.