标记化结构

//symb_struct_C.c --> 标记化结构

/*********************************************************

* 标记传参不用理会参数传递的顺序;

* 可以选择性传参(使用标记初始化法,可以相当自由地对你有把握的参数进行初始化);

* 扩展性更好(很容易在该结构体中增加一个字段);

* LDD3上如是说:将频繁被访问的成员放在相同硬件缓存上,

    将大大提高效率(the entrance of some funcs)。

**********************************************************/

#define THIS_MODULE ">>>MY_MODULE"


struct file_operations{

char *owner;

void (*llseek)(void);

void (*read)(void);

void (*write)(void);

void (*ioctl)(void);

void (*open)(void);

void (*release)(void);

};


void my_llseek(void)

{

puts(">>>my_llseek...");

}


void my_read(void)

{

puts(">>>my_read...");

}


void my_write(void)

{

puts(">>>my_write...");

}


void my_ioctl(void)

{

puts(">>>my_ioctl...");

}


void my_open(void)

{

puts(">>>my_open...");

}


void my_release(void)

{

puts(">>>my_release...");

}


struct file_operations my_fops = {

.owner = THIS_MODULE,

.llseek = my_llseek,

.write = my_write,

.read = my_read,

.ioctl = my_ioctl,

.open = my_open,

.release = my_release,

};


int main(int argc, char *argv[])

{

puts(my_fops.owner);

my_fops.open();

my_fops.read();

my_fops.write();

my_fops.ioctl();

my_fops.release();


return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值