Der (&fp)(int, mylong)
Teil repräsentiert einen Verweis auf eine Funktion. Es wird nicht empfohlen, dass Programmierer Funktionen verwenden, genau typedef
aus dem Grund, aus dem Sie diese Frage stellen. Es verwirrt andere Leute, die sich den Code ansehen.
Ich vermute, sie verwenden das typedef
in so etwas:
typedef unsigned long mylong;
typedef int (&fp)(int, mylong);
int example(int param1, mylong param2);
int main() {
fp fp_function = example;
int x = fp_function(0, 1);
return 0;
}
int example(int param1, mylong param2) {
int x = param1;
return x;
}
Bearbeitet in Übereinstimmung mit Brians Kommentar:
int(&name)(...)
ist eine aufgerufene Funktionsreferenzname
(die Funktion gibt ein int zurück)
int &name(...)
ist eine Funktion, die als name
Rückgabe einer Referenz auf ein int bezeichnet wird
Ein Verweis auf eine Funktion, die einen int
Verweis zurückgibt, würde ungefähr so aussehen: typedef int &(&fp)(int, mylong)
(Dies wird in einem Programm kompiliert, aber das Verhalten ist nicht getestet).