#define BINDER_DEBUG_ENTRY(name) \
static int binder_##name##_open(struct inode *inode, struct file *file) \
{\
return single_open(file, binder_##name##_show, inode->i_private); \
}\
binder.c 中很好的一个使用字符串拼接 ## 命令的地方。实现了一个使用入参标识符,来生成不同的函数名的方法。
注意,还不是使用入参,来生成不同的函数名的方法。那样的话等于说是动态的生成函数名了,这也不现实啊。
这个用法只能是在声明的时候用,而不是调用的时候。?所以才声明成static的 ?
BINDER_DEBUG_ENTRY(proc);
BINDER_DEBUG_ENTRY(state);
BINDER_DEBUG_ENTRY(status);
考虑一下如果是在调用的时候用宏替换呢?
BINDER_DEBUG_ENTRY(proc);