这个宏扩展成什么?

What this macro is expanded to?

我在一个 C 项目中遇到了这个宏定义。 我在扩展宏时遇到问题。 这是:

#define PT_THREAD(name_args) char name_args

#define PROCESS_THREAD(name, ev, data)              \
static PT_THREAD(process_thread_##name(struct pt *process_pt,   \
                   process_event_t ev,  \
                   process_data_t data))

有帮助吗?谢谢。

您可以运行 gcc -E 获得预处理器后的结果代码。

运行 在 PROCESS_THREAD(foo,bar,baz) 上的结果是:

static char process_thread_foo(struct pt *process_pt, process_event_t bar, process_data_t baz)