Ich habe eine Header-Datei, die enthält
#define PROTOTYPE(s) s
Was ist der Sinn davon? Scheint, als würde es nur die Eingabe durch sich selbst ersetzen.
Es gibt Unmengen anderer Richtlinien, aber die einzige, bei der anscheinend eine Peilung nur überprüft wurde, wenn sie definiert ist : #ifndef PROTOTYPE
. Ich habe einige Stellen in HDF4-Header-Dateien gefunden, die dies tun : #define PROTOTYPE
. Nichts davon klärt meine Frage wirklich. Scheint immer noch ziemlich nutzlos.
So wird es verwendet:
CS_RETCODE clientmsg_callback PROTOTYPE((
CS_CONTEXT * context,
CS_CONNECTION *connection,
CS_CLIENTMSG *clientmsg));
Dies ist Teil eines Projekts, das Sybase Open Client verwendet. clientmsg_callback wird später hier verwendet:
ct_callback(context, NULL, CS_SET, CS_CLIENTMSG_CB,
(CS_VOID *)clientmsg_callback);
Ich gehe von hier aus von einem Beispielprogramm ab:
clientmsg_callback wird später implementiert. Ich denke, das Beispiel wurde ursprünglich mit Blick auf C anstelle von C ++ geschrieben. Vielleicht hat das etwas damit zu tun?
#if
/#ifdef
/#ifndef
/#else
Direktiven, in denen es stattdessen eine andere Definition geben könnte? Es könnte einen Unterschied machen, wenn es in anderen Makros verwendet wird, insbesondere in der Nähe von#
oder##
. Es könnte nur für einen Kommentarstil sein. Nicht genug Kontext, um wirklich zu antworten.