Для чего можно использовать приведенные ниже макросы? - PullRequest
4 голосов
/ 31 марта 2011
#define MEMCACHED_COMMAND_GET(arg0, arg1, arg2, arg3, arg4)
#define MEMCACHED_COMMAND_GET_ENABLED() (0)

Приведенные выше макросы кажутся совершенно бесполезными, для чего их можно использовать ??

1 Ответ

11 голосов
/ 31 марта 2011

Вероятно, есть несколько определений для этих макросов, и вы выберете одно или другое в зависимости от флага компиляции.Это позволяет, например, предоставлять отладочную информацию, только если она встроена в режим отладки.

Например, в memcached_dtrace.h есть что-то вроде:

#if ENABLE_DTRACE
...
#define MEMCACHED_COMMAND_GET(arg0, arg1, arg2) \
    __dtrace_memcached___command__get(arg0, arg1, arg2)
#define MEMCACHED_COMMAND_GET_ENABLED() \
    __dtraceenabled_memcached___command__get()
...
#else
...
#define MEMCACHED_COMMAND_GET(arg0, arg1, arg2)
#define MEMCACHED_COMMAND_GET_ENABLED() (0)
...
#endif

Эти команды выполняют только тоENABLE_DTRACE активируется во время сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...