次の関数宣言に出くわしましたが、それがどのように機能するかを正確に理解できません。関数はファイルで次のように宣言されています。
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; また、function1がポインターとして宣言されていないため、typedef void function1(引数)は何を意味しますか。誰かがここで何が起こっているのか説明できますか?