C语言模块化编程中如何隐藏结构实现细节
来源:互联网 发布:冰月ce源码 编辑:程序博客网 时间:2024/05/16 08:52
经常看到有人为了隐藏结构体的实现细节煞费苦心,故本文简单介绍一下如何用简单
有效的方法实现隐藏;
但是上面的写法并没有隐藏掉struct Module_T的具体实现;
隐藏掉该实现的方法如下:
有效的方法实现隐藏;
C语言模块化编程典型的模块文件结构是这样的:
// module.h#ifndef MODULE_INCLUDED#define MODULE_INCLUDEDstruct Module_T{ Module_T* link; void* data;};extern Module_T* Module_new();extern Module_T* Module_free(Module_T** module);extern void Module_push(Module_T* module, void* data);extern void* Module_pop(Module_T* module);#endif// module.c#include<stddef.h>#include<stdlib.h>#include"module.h"Module_T* Module_new(){...}Module_T* Module_free(Module_T** module){...}void Module_push(Module_T* module, void* data){...}void* Module_pop(Module_T* module){...}
但是上面的写法并没有隐藏掉struct Module_T的具体实现;
隐藏掉该实现的方法如下:
/ module.h#ifndef MODULE_INCLUDED#define MODULE_INCLUDED#define T Module_Ttypedef struct T *T;extern T Module_new();extern T Module_free(T* module);extern void Module_push(T module, void* data);extern void* Module_pop(T module);#undef T#endif// module.c#include<stddef.h>#include<stdlib.h>#include"module.h"#define T Module_Tstruct T{ int length; struct elem { struct elem* link; void* data; }* element;};T Module_new(){...}T Module_free(T* module){...}void Module_push(T module, void* data){...}void* Module_pop(T module){...}
- C语言模块化编程中如何隐藏结构实现细节
- C语言模块化编程
- c语言模块化编程
- C语言模块化编程
- C语言模块化编程
- 嵌入式C语言模块化编程
- C语言编程细节
- C语言开发函数库时利用不透明指针对外隐藏结构体细节
- [转]C语言开发函数库时利用不透明指针对外隐藏结构体细节
- 嵌入式C语言之---模块化编程
- 嵌入式C语言之---模块化编程
- C语言学习之模块化编程
- 嵌入式C语言之---模块化编程
- 嵌入式C语言之---模块化编程
- 嵌入式C语言之---模块化编程
- 嵌入式C语言之---模块化编程
- C语言模块化编程的思想
- 嵌入式C语言之---模块化编程
- CU的递归扫描顺序
- python 编辑器——python IDLE(python还不错哦,环境和输入输出都这么简单方便)
- 关于c语言中自动变量(局部自动变量)的空间的分配的问题
- 记忆也缓缓地变得稀薄了记忆也缓缓地变得稀薄了
- SQL Server中容易混淆的数据类型
- C语言模块化编程中如何隐藏结构实现细节
- java中将路径中的反斜杠改为斜杠
- 管理角色与执行角色
- jquery 清除表单数据 clear from data
- 登录pl/sql报错Dynamic Performance Tables not accessible...的解决方法和原因
- 取得系统中文件类型所对应的图标
- Ubuntu Linux 环境变量PATH设置
- 最近的一段JS中得到的启示
- 2012-02-28-2