У меня есть файл заголовка, который содержит
#define PROTOTYPE(s) s
Какой в этом смысл? Похоже, он просто заменит ввод самим собой.
Есть множество других директив вокруг него, но только один , который , как представляется , есть какой - либо подшипник только что проверил , если он определен: #ifndef PROTOTYPE
. Я нашел несколько мест в заголовочных файлах HDF4 , которые делают это: #define PROTOTYPE
. Так что ничего из этого не проясняет мой вопрос. По-прежнему кажется довольно бесполезным.
Вот как это используется:
CS_RETCODE clientmsg_callback PROTOTYPE((
CS_CONTEXT * context,
CS_CONNECTION *connection,
CS_CLIENTMSG *clientmsg));
Это часть проекта, в котором используется Sybase Open Client. clientmsg_callback здесь позже используется:
ct_callback(context, NULL, CS_SET, CS_CLIENTMSG_CB,
(CS_VOID *)clientmsg_callback);
Я выхожу из примера программы отсюда:
clientmsg_callback будет реализован позже. Я думаю, что образец изначально был написан с учетом C, а не C ++. Возможно, это как-то связано с этим?
#if
/#ifdef
/#ifndef
/,#else
где вместо этого могло бы быть другое определение? Это может иметь значение при использовании в других макросах, особенно рядом с#
или##
. Это могло быть просто для стиля комментирования. Недостаточно контекста, чтобы действительно ответить.