У мене є файл заголовка, який містить
#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
де натомість воно може мати інше визначення? Це може мати значення при використанні в інших макросах, особливо поблизу#
або##
. Це може бути просто для стилю коментування. Недостатньо контексту, щоб справді відповісти.