首页 > 代码库 > linux 中 C 语言的使用 -- 结构体多态
linux 中 C 语言的使用 -- 结构体多态
在 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。