下面的宏可以用于什么?
#define MEMCACHED_COMMAND_GET(arg0, arg1, arg2, arg3, arg4) #define MEMCACHED_COMMAND_GET_ENABLED() (0)
上面的宏似乎完全没用,它们可以用于什么?
这些宏可能有几种定义,您可以根据编译标志选择一种或另一种。 这使得例如仅在内置调试模式时提供调试信息。
例如,在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
时执行某些操作。