下面的宏可以用于什么?

#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时执行某些操作。