这个宏扩展到什么?

时间:2015-10-26 10:08:08

标签: c macros

我在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))

有些帮助吗?谢谢。

1 个答案:

答案 0 :(得分:3)

您可以运行gcc -E以在预处理器之后获取生成的代码。

PROCESS_THREAD(foo,bar,baz)上运行此操作会导致:

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