在定义 C 中为空?
Empty in define C?
关于以下片段的快速问题:
#ifndef __LZO_MMODEL
#define __LZO_MMODEL /*empty*/
#endif
在这样一个空定义中它代表什么?
用法类似:
#define lzo_bytep unsigned char __LZO_MMODEL *
#define lzo_charp char __LZO_MMODEL *
这些答案并未涵盖许多其他可能的情况。
再举个例子。
#ifndef DEBUG
#define SINLINE static inline __attribute__((always_inline))
#else
#define SINLINE
#endif
然后
SINLINE void myfunc()
{
/* ... */
}
并且如果 DEBUG
已定义函数将不会被内联,从而使其对调试器更友好。
还有许多其他用例。
关于以下片段的快速问题:
#ifndef __LZO_MMODEL
#define __LZO_MMODEL /*empty*/
#endif
在这样一个空定义中它代表什么?
用法类似:
#define lzo_bytep unsigned char __LZO_MMODEL *
#define lzo_charp char __LZO_MMODEL *
这些答案并未涵盖许多其他可能的情况。
再举个例子。
#ifndef DEBUG
#define SINLINE static inline __attribute__((always_inline))
#else
#define SINLINE
#endif
然后
SINLINE void myfunc()
{
/* ... */
}
并且如果 DEBUG
已定义函数将不会被内联,从而使其对调试器更友好。
还有许多其他用例。