C语言简单实现接口
2015-11-21 16:30
363 查看
使用函数指针和结构体简单实现了一下C语言的接口。
#include <stdio.h> #include <stdlib.h>
//c语言做接口 typedef struct{ int (*add)(int , int ); void (*print)(char* ); }Env ,*PEnv; //获取一个实例的指针,可以使用不同的初始化函数对接口进行实现 PEnv getEnv() { PEnv env = (PEnv)malloc(sizeof(Env)); return env; } //初始化函数对结构体赋值,相当于实现接口 PEnv InitEnv(PEnv env, int (*_add)(int , int ), void (*_print)(char* )) { env->add = _add; env->print = _print; return env; } //真正函数的实现 可以直接通过修改这些具体实现函数来改变程序的功能,这样可以隔离变化 int add(int a, int b) { return a+b; } void print(char* str) { printf("%s\n", str); } //*************************************************** //使用接口 void doSomeThingThroughEnv(PEnv env) { int sum; sum = env->add(1,2); printf("***%d***\n", sum); env->print("chenchen"); } void main() { int sum; PEnv env = getEnv(); InitEnv(env, add, print); //此处只要有函数名即可 doSomeThingThroughEnv(env); }
相关文章推荐
- 002--VS C++ 获取鼠标坐标并显示在窗口上
- C++ this 指针
- 关于C++中的引用传递
- 关于C语言0x01
- c语言栈的应用之括号匹配问题
- C++设计模式[十四]解释器模式
- 000 VS2013 c++ 框架
- C++ 函数指针
- Effective Objective-C 2.0 — 第一条:了解Objective-C语言的起源
- 关于C++中虚函数的作用
- [c++] final override keyword
- 001--VS2013 c++ 游戏框架
- C++ sizeof 使用规则及陷阱分析
- C++学习笔记25——泛型算法之写入容器
- C++ 面向对象程序设计
- C语言二叉树的遍历,递归和非递归
- effective c++避免返回handles指向对象内部成分(2)
- C++控制台循环链表实现贪吃蛇
- 【C++】判断顺序栈出栈顺序的合法性
- C++ 学习(继承和动态内存分配)