Tengo un archivo de encabezado que contiene
#define PROTOTYPE(s) s
¿Cuál es el punto de esto? Parece que simplemente reemplazaría la entrada por sí mismo.
Hay un montón de otras directivas a su alrededor, pero el único que parece tener alguna relación acaba de comprobar si se define: #ifndef PROTOTYPE
. He encontrado algunos lugares en los archivos de cabecera HDF4 que hacen esto: #define PROTOTYPE
. Entonces, nada de eso realmente aclara mi pregunta. Todavía parece bastante inútil.
Así es como se usa:
CS_RETCODE clientmsg_callback PROTOTYPE((
CS_CONTEXT * context,
CS_CONNECTION *connection,
CS_CLIENTMSG *clientmsg));
Esto es parte de un proyecto que utiliza Sybase Open Client. clientmsg_callback se usa más tarde aquí:
ct_callback(context, NULL, CS_SET, CS_CLIENTMSG_CB,
(CS_VOID *)clientmsg_callback);
Salgo de un programa de muestra de aquí:
clientmsg_callback se implementa más tarde. Creo que la muestra se escribió originalmente con C en mente, en lugar de C ++. ¿Quizás eso tenga algo que ver con eso?
#if
/#ifdef
/#ifndef
/ cercanas#else
en las que podría tener una definición diferente? Podría marcar la diferencia cuando se usa en otras macros, especialmente cerca#
o##
. Podría ser solo para un estilo de comentario. No hay suficiente contexto para responder realmente.