在预处理程序指令中组合##和_type

时间:2017-11-30 11:54:01

标签: c gcc

此代码段中使用thread##_type的目的是什么? 我理解,下划线t (_t)用作命名以识别类型的约定,如下划线类型(_type),通常在typedef语句中。我也理解##中的macros表示连接。 _type除此之外还有其他目的吗? (比如使用双下划线__FILE__)?

#define THREAD_TYPE(thread)                         
typedef struct                                      \
{                                                   \
   pthread_t pthread;                               \
   int err;                                         \
} thread##_type;

1 个答案:

答案 0 :(得分:2)

_type在C中没有特殊含义。此代码只是以作者选择的方式装饰名称,仅此而已。