C语言零碎记录之typedef 和 hashtable
现在用C语言,感觉很难写出高质量的代码,我觉得这个和编程方法,以及编程思想有许多关系,百度也找不到什么好的资料,有一些书 unix高级编程 ek2k有pdf的,应该不错.
现在呢,我就通过看别人的代码来提高自己吧...现在在看nginx 1.1.15的源码,源码比较庞大,我不是为了研究它而去看,而是 看其中的编程方法,以及关于 多线程 /进程 ,数据通信 相关的代码.
其中看到这个:
typedef time_t (*ngx_path_manager_pt) (void *data);
不知道 typedef 是不是多余??? 没有他 这就是一个 声明 而已么?
typedef time_t (*ngx_path_manager_pt) (void *data);
time_t (*ngx_path_manager_pt) (void *data); 有什么区别呢??
因为一般typedef用的比较多的是: typedef struct{ xxx} s_t; 最后的s_t可以直接来用... 那这个呢???有新的类型 可以直接来用么???
这本就是个 函数指针啊...关键 其 后面 没有 多余的 新的类型的名称 ,那这个 typedef 还有什么用呢???
是我太愚昧了,typedef太灵活了(或许我们应该看看 GCC中关于typedef的代码,来了解typedef;
这个 ngx_path_manager_pt 就相当于 新的类型了.. 原来 新类型 不一定 要在最后面的....太灵活了...
所以 下面 就有两个 指针函数
这就是传说中 用c语言写出面对对象的一些方法...结构体 也可以当做类 调用方法来使用.
哈希表HashTable
==============
现在 还想研究 哈希表 感觉 其实 就是 数组的 神奇用法而已 ...
其和 单链表 就查找方式 不一样,,其他 都一样了....
最简单的就是根据 数字 作为值来进行处理了.
------------------------------------------------------------------------------------------------
一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。