私の教師の 1 人がこの型宣言を使用しています。
typedef void (*SortFunction)(int a[], int n);
関数へのポインターを保持でき、後でプログラムでその関数を呼び出すために使用できる型を作成します。
また、関数をパラメーターとして渡すには、関数名を括弧で囲み、関数名の後に関数のパラメーターを括弧で囲む必要があることも知っています。
function someFunction( (anotherfunction)(type arg1, type arg2,...)){
...
}
私が知りたいのは、関数をこのように括弧で囲む必要があるのはなぜですか? これはほとんどの C++ コンパイラの組み込み関数ですか、それともコード内で関数を引数として有効にするためにプログラマが使用する単なるトリックですか? また、typedef ステートメントの「SortFunction」を参照する必要があるのはなぜですか。SortFunction を使用するために使用する変数が、関数を指すのではなく、関数を保持できないのはなぜですか?