Ich bin in einer Situation des Arguments in Libev übergeben.Libew, Wie Argumente an relevante Rückrufe übergeben
Normalerweise erhält libev Pakete in einer Funktion wie * receive_callback *, das ist in Ordnung, aber in der Praxis brauchen wir ein relativ * versenden write_callback * mit bestimmten Projekten gemäß dem empfangenen Paket zu behandeln. Zum Beispiel:
S_RECV_MSG* pstRecvMsg = (S_RECV_MSG*) recv_buff;
switch(pstRecvMsg->wMsgType) {
case 1:
ev_io_init(w, write_callback1, w->fd, EV_WRITE);
break;
case 2:
ev_io_init(w, write_callback2, w->fd, EV_WRITE);
break;
case 3:
// .......
}
Meine Frage ist, ob die write_callbackX
auch den spezifischen Inhalt in der recv_buff zu lesen hat, wie können wir das recv_buff Argument an die callbackX passieren? Müssen wir hier die Last und Hässlichkeit globaler Variablen tragen?
Das ist die richtige Antwort, wenn Sie möchten, können Sie es als eine echte Antwort schreiben und akzeptieren, macht es einfacher für andere Menschen, die Informationen zu finden. – dnaq
Wenigstens bist du zurückgegangen und hast weiter geforscht, anstatt auf eine Antwort zu warten :) Schön, dass du es gelöst hast. –
Ich schlage vor, Ihre Lösung als Antwort zu schreiben (und dann zu akzeptieren), anstatt sie in der Frage – Shahbaz