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

wp2*_*wp2 3 c syntax

typedef int F1(int x);

int F1(int x);
Run Code Online (Sandbox Code Playgroud)

对我来说似乎相同,无论是否typedef..

Pho*_*ong 6

typedef int F1(int x);
Run Code Online (Sandbox Code Playgroud)

您定义了一个函数类型F1,它是一个以整数作为参数并返回一个整数的函数

int F1(int x);
Run Code Online (Sandbox Code Playgroud)

您定义了一个名为F1的函数

  • 写作时差别更明显:"typedef int(*F1)(int x);" (2认同)

Bee*_*Guy 6

typedef不声明变量; 它声明了一种类型.

你说之后:

typedef int F1(int x);
Run Code Online (Sandbox Code Playgroud)

稍后在您的代码中,您可以拥有:

F1 myfunction;
Run Code Online (Sandbox Code Playgroud)

这相当于:

int myfunction(int x);
Run Code Online (Sandbox Code Playgroud)