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

标签 c gcc

此代码段中使用 thread##_type 的目的是什么? 我理解下划线t(_t)作为命名约定来识别类型,下划线类型(_type)也是,通常在typedef 声明。我也理解 macros 中的 ## 表示连接。 _type 是否还有其他用途? (比如双下划线 __FILE__ 的用法)?

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

最佳答案

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

关于在预处理器指令中组合 ## 和 _type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47572916/

相关文章:

c - 在 C 中将 char **token 增量添加到 char *token

c - 在 Mac OS mavericks 上运行 C 代码会产生无限循环,但在 Linux Ubuntu 上运行良好

c++ - 使用 SDL 和 OpenGL 编译 Makefile 错误 : missing separator,

c++ - 没有相应编译器标志的 Clang/GCC 编译器内部函数

c - 为什么glibc库使用汇编

c - AND 0xFF 有什么作用?

c - 从 .log 文件读取十六进制数据时出错

c - 用VHDL编写C语句

c - 在 C 中定义尽可能最小的宏

c++ - 如何修复 distcc 错误