Chinaunix首页 | 论坛 | 博客
  • 博客访问: 424418
  • 博文数量: 205
  • 博客积分: 5630
  • 博客等级: 大校
  • 技术积分: 1945
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-06 20:28
文章分类

全部博文(205)

文章存档

2016年(1)

2015年(6)

2014年(9)

2013年(10)

2012年(53)

2011年(25)

2010年(87)

2009年(14)

分类: LINUX

2010-08-24 10:53:35

利用宏定义##,简洁的定义几个类似的函数,方法如下例所示:
struct led_attr{
struct attribute attr;
ssize_t(*show)(char*);
ssize_t(*store)(const char *, size_t count);
};


#define glow_show_led(number)  \
static ssize_t glow_led_##number(const char buffer,size_t count)\
{\
}\

static ssize_t show_led_##number()\
{\
}\
static struct led_attr led##number = \
__ATTR(led##number, 0644, show_led_##number, glow_led_##number);

接下来定义几个函数:
glow_show_led(0);
glow_show_led(1);
glow_show_led(2);
......

这里的##number中的##表示连接的作用,比如glow_show_led(0)这个宏,number是0,所以也就是glow_led_0(....)...
阅读(655) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~