Das Makro __P()
wird normalerweise verwendet, um C-Implementierungen ab den Tagen von K & amp; C zu unterstützen, wenn es keine Prototypen gab (die mit C89 in C eingeführt wurden). Grundsätzlich ist die Logik
Können Sie sehen, wie das funktioniert, wenn es auf Ihr Beispiel angewendet wird? Beachten Sie, dass die Argumentliste die Klammern des Funktionsaufrufs enthalten muss und nicht nur die Klammern von funktionsähnliches Makro . Daher die doppelten Klammern, wenn das Makro verwendet wird. Das ist wahrscheinlich der Grund, warum es ungewöhnlich aussieht.
Die übliche Form der Funktionszeigerdefinitionen ist .... aber ich habe a gesehen Form heute, die ich nicht verstanden habe.
Hier gibt es nichts Spezielles, keine magische Syntax. Dies ist nicht eine andere Form der Funktionszeigerdeklaration.
Dies ist nur die Standardform der Funktionszeigerdeklaration, und __P()
ist ein Makro, das von einer der Headerdateien definiert wird, die Sie verwenden. So, finden Sie diese Makrodefinition, um zu erfahren, was ihr Zweck ist.
Tags und Links c function declaration function-prototypes