码迷,mamicode.com
首页 > 系统相关 > 详细

linux 中 C 语言的使用 -- 结构体多态

时间:2014-05-23 07:58:18      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:android   style   class   blog   c   code   

在 Linux 内核代码,特别是驱动代码中经常见到的用法是使用一个标准结构,后面的代码基于这个结构来实现,类似面向对象的多态特性。

在 C 语言里面借助结构体和函数指针实现的这个功能,这里我们写了个例子,提取了关键代码: 

 

#include <stdio.h>
struct s_new{
   char name[10];
   char* (* my_method)(char *name);
};
char* powerful(char *name){
   printf("%s is powerful\n",name);
   return name;
}
int main()
{
   struct s_new my_struct = {
   .name = "Jiang XD",
   .my_method = powerful,
   };
   my_struct.my_method(my_struct.name);
   return 0;
}


 

在 GCC 编译器编译运行结果:

 jiangxd@ubuntu-server:/home/Atmel_android/jiangxd/workspace/codejoke$ gcc -o struct struct.c

jiangxd@ubuntu-server:/home/Atmel_android/jiangxd/workspace/codejoke$ ./struct

Jiang XD is powerful


linux 中 C 语言的使用 -- 结构体多态,布布扣,bubuko.com

linux 中 C 语言的使用 -- 结构体多态

标签:android   style   class   blog   c   code   

原文地址:http://blog.csdn.net/jingxia2008/article/details/26162075

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!