2016-11-05 2 views
2

Entschuldigung für scheinen zu vermeiden, hier nach einer Antwort zu suchen, aber ich weiß nicht, was die Konstrukte sind, um intelligent nach ihnen zu suchen. Speziell interessiert mich, was der zweite Parameter bedeutet?Was bedeutet diese C-Funktionsdeklaration?

Meine beste Schätzung ist, es ist ein int (das bezieht sich auf einen Speicherort), der (?) Eines Tupels der drei genannten Typen zusammengesetzt ist. Ist das richtig? Wenn ich nur an einem von diesen interessiert wäre (und ich bin in meiner Beschreibung an erster Stelle), wie würde ich darauf verweisen?

+3

Es sieht wie ein Funktionszeiger aus, wobei die drei Typen die Parameter sind. – ChrisF

+1

Ein gutes Werkzeug zum Interpretieren komplexer Deklarationen ist "cdecl". – TonyB

+0

Zeiger auf eine Funktion, die 'int' zurückgibt und drei Parameter nimmt, wobei der erste 'int' ist, der zweite Typ' FdEventHandlerPtr' ist und der dritte 'AcceptRequestPtr' ist. Für weitere Informationen benötigen Sie die eigentlichen Definitionen der Typen für den zweiten und dritten Parameter. –

Antwort

5
int (*handler)(int, FdEventHandlerPtr, AcceptRequestPtr) 

Definiert einen Parameter handler benannt, die ein Zeiger ist (daher der *) auf eine Funktion, die eine int zurückgibt (daher das „äußere“ int) und drei Argumente hat, nämlich eine int, einer FdEventHandlerPtr und ein AcceptRequestPtr.