![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
kari_zhang
Yesterday is history。Tomorrow is a mystery。But today is a gift。That is why its called the present the gift。
展开
-
画二叉树小工具
学习树的时候,经常需要在纸上画出逻辑存储结构。不仅不环保, 还麻烦。写了一个画二叉树的小工具dtree(drawtree)。源代码参考下面链接。先上个图该工具是基于终端字符图形库ncurses实现的, 其实如果完全不用第三方库, 也能实现, 只不过有些限制和麻烦。一般linux发行版都有ncurses(或者curses)库, dtree工具用ncurse原创 2013-12-06 14:13:30 · 16568 阅读 · 0 评论 -
使用libusb库笔记
libusb简介libusb是一套可以比较简单的访问usb设备的api. libusb在不同的语言和不同的系统平台上都有实现,关于libusb的其他优点,可以访问libusb官网(http://libusb.org). 几经折腾,终于可以在ubuntu上用libusb读写数据了. 记录一下容易忽略的地方. 常见返回错误码解决1. interface认领和读写endpoint地址原创 2016-07-08 15:16:29 · 11916 阅读 · 1 评论 -
Android控制台程序利用GPU处理图像
Android控制台程序利用GPU处理图像1. 引言最近工作比较忙,忙了2个多月,有一段时间没有写笔记了. 这段时间的工作内容接触到利用GPU处理图像,而我本身对数字图像处理一直比较感兴趣,顾借这次机会学习一些数字图像处理相关的技术.2. 简单背景介绍数字图像一般像素数据较大,CPU设计的目的是通用计算,更擅长的是逻辑控制. 目前智能设备中为了更流畅的显示,一般都配有GPU, GPU的运算单元非常多原创 2015-11-10 14:58:52 · 3541 阅读 · 0 评论 -
值得学习的C语言开源项目
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210原创 2015-05-27 13:08:03 · 846 阅读 · 0 评论 -
浅谈组件技术
将组件思想推广的最出名的应该算是微软的COM技术了。组件技术的核心思想是将软件划分成一个个独立的模块,这些模块只暴露对外开放的接口,模块间通过接口拼接,调用,组装成最终的系统。软件开发模型中的增量模型用到的就是组件思想。组件的客户只关心组件的接口,不关心组件的内部实现和存放的路径。对于组件自身而言,有以下问题需要考虑: 1.由于客户语言的多样性,客户语言的参数可能与自身实现语言的参数原创 2015-03-17 11:10:15 · 1513 阅读 · 0 评论 -
设置Windows应用程序图标方法笔记
设置windows应用程序的图标常见的方法有2种。1. 窗口窗前前,可以利用LoadIcon(HINSTANCE hIns, LPCTSTR name) 先获取句柄,然后填入WNDCLASS 结构的hIcon成员。2. 窗口创建后,可以向窗口发送WM_SETICON消息。SendMesage(hwnd, WM_SETICON, ICON_BIG, hIcon) 的第三个参数可取值原创 2014-12-14 01:49:53 · 1682 阅读 · 0 评论 -
使用MinGW开发Win32应用程序常见问题的解决方法
用VS编译Win32应用程序时,按照MSDN文档指示,一般很少会遇到问题。及时遇到了问题认真阅读一下Remarks,也很快能解决。但是用MingGW编译Win32应用程序时, 经常遇到头文件没有正确包含,静态库没有连接的问题。1. VS中,链接器默认会链上User32.lib ,Kernel32.lib和Gdi32.lib。 而MinGW则需要自己手动指定要连接的库。2. MinGW头文件原创 2014-11-30 11:16:30 · 4704 阅读 · 1 评论 -
libev学习(二)常见类型剖析
typedef struct ev_io{ EV_WATCHER_LIST (ev_io) int fd; /* ro */ int events; /* ro */};原创 2014-10-08 16:20:51 · 688 阅读 · 0 评论 -
libev学习(一)初识libev
libev内部封装了socket IO 模型,用户只需要向原创 2014-10-08 10:34:43 · 845 阅读 · 0 评论 -
linux下将资源文件编进可执行文件
有时候需要将一些图片, 音乐或者字符串文件原创 2014-07-28 14:06:37 · 3032 阅读 · 0 评论 -
内部排序算法之堆排序
堆排序是利用堆的性质, 从缩小的排序空间中不断的选出堆顶元素,从而达到排序的效果。堆排序的时间复杂度主要是在不断的调整堆以满足堆的性质,其评价性能和最差情况都是O(logN), 平均性能差于快速排序,但最坏情况优于快速排序。堆可以作为具有优先级队列的实现。通常在数据量较大的时候,而需要选择出前面较大的几个元素时候, 可以考虑堆排序。堆排序的实现分为4步:1. 初始化堆, 这个过程就原创 2014-04-01 17:12:34 · 630 阅读 · 0 评论 -
利用哈夫曼编码压缩文件的小工具
huffan压缩算法在大学的教材重点讲过, 实现起来相对轻松。LZ77算法是另外一个经典的算法,由两个犹太人在70年代发明,LZ77算法的出现打破了之前由huffman算法一人独大的局面。原创 2014-04-30 14:06:35 · 2921 阅读 · 3 评论 -
从零开始,自己动手写Java虚拟机
从零开始,自己动手写Java虚拟机自己动手写一个Java虚拟机java虚拟机的作用java虚拟机的组成java虚拟机的开发java虚拟机的测试原创 2017-12-19 23:35:59 · 12396 阅读 · 3 评论