我遇到了以下函数声明,但我无法理解它是如何工作的:该函数在文件中声明如下:
struct newtype {
/* some definition */
};
typedef void function1 (int* a, newtype* p);
然后在上面的另一个C代码中声明用于声明另一个function2,如下所示:
function1 function2;
void function2(int* a, newtype* p)
{
/* function definition */
}
那么function2的使用方式如下:
int function3 (int, char, function1* );
/* definition */
function3(int a, char c, function2 )
{
/* function definition */
}
我无法理解语句:function1 function2; typedef void function1 (arguments) 是什么意思,因为 function1 没有声明为指针。谁能解释这里发生了什么?