问个define的问题
Advertisement:
热门软件下载:
#define dyncfg_funcptr(x) dyn_ptr_##x
和#define dyncfg_funcptr_set(x,y) dyn_ptr_##x = y
这个两个宏定义如何展开?能否举个例子。
推荐阅读
网友:arfi
##是用来进行字符串连接的,如果你的函数中出现了dyncfg_funcptr(func1),就会被替换为dyn_ptr_func1。例如:
#include <stdio.h>
#define dyncfg_funcptr(x) dyn_ptr_##x
void dyn_ptr_1(void)
{
printf("in function dyn_ptr_1\n");
}
void main(void)
{
void (*p)();
p = dyncfg_funcptr(1);
(*p)();
}
网友:hitbabiq
宏定义就是在展开时,只是简单的替换,##楼上已经讲了,是字符串连接
.
相关评论