
玄之又玄代码空间
文章平均质量分 71
图灵狗
浮沉古栈道,水平浪不平。
展开
-
zlib库compress和uncompress函数的使用方法
zlib(http://zlib.net/)提供了简洁高效的In-Memory数据压缩和解压缩系列API函数,很多应用都会用到这个库,其中compress和uncompress函数是最基本也是最常用的。不过很奇怪的是,compress和uncompress函数尽管已经非常的简单,却仍然有不少人用得不好,其实归根结底还是在于有些事情没有弄明白,这里大家先看下面的代码。#include #i原创 2012-11-05 12:03:04 · 73178 阅读 · 25 评论 -
用C语言实现面向对象程序设计(一)
许多朋友都知道用C语言是可以实现面向对象程序设计的,但是具体到操作的细节部分就有些茫然不知所措了。为此作者在研究LW_OOPC的基础上,对其进行充分的简化,只保留最基本的面向对象功能,形成自己的OOSM宏包,其实这些东西已经够用了,以下是OOSM宏包的源代码:/* Object-Oriented Support Macros(OOSM) OOSM is an object-o原创 2013-01-18 10:48:58 · 5320 阅读 · 7 评论 -
用C语言实现面向对象程序设计(三)
面向对象中的继承又是如何处理的呢,下面来看看方形类的具体描述方式:#ifndef __CSQUA_H__#define __CSQUA_H__#include "crect.h"/* Square Class, inherits from Rectangle, for describing square objects */class(csqua){ extends原创 2013-01-23 10:55:02 · 2520 阅读 · 0 评论 -
用C语言实现解析简单配置文件的小工具
本文介绍作者写的一个小工具,简单的代码中包含了C语言对字符串的处理技巧,对文本文件的简单解析,二进制文件的数据复制的方法,以及格式化输出文本文件的示例。工具的输入是如下内容的配置文件:;资源管理器配置脚本;以行为单位,每行不能超过255个字符;空行和以;开头的注释行会被忽略掉;每行都关联一个资源文件,资源序号从0开始,依次递增.\img\img128x128.bin.\s原创 2012-12-18 14:47:43 · 4648 阅读 · 1 评论 -
用Python语言显示图片的倒影效果
Python是一种强大的开源解释性语言,最初是在苹果计算机上被编译成功的,但现在它已经可以运行于世界上主流的操作平台之上了,对于常见的Linux和Windows平台的支持当然更不在话下。Python脚本语言的优点很多,它易学易用,开源免费,可移植性高,内建丰富的数据结构,库涵盖面广,无需编译可直接运行。Python脚本语言的用途非常广,单就工程师而言,利用它可以方便的制作开发用的工具,快速演练原创 2012-11-20 13:21:46 · 4654 阅读 · 2 评论 -
用GMP库实现大数运算的引子
优快云论坛上有不少关于大数运算的问题,有用文件、数组和多项式等多种描述方式,作者觉得科学应该尽量建立在“巨人的肩膀上”,GMP库就是非常适合作大数运算的,其内涵还是引用原文来得给力一些。GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers原创 2012-12-02 22:59:22 · 12865 阅读 · 3 评论 -
用C语言显示汉字的演示程序
汉字是方块字,宽高相等的汉字库在嵌入式领域有着广泛的应用,且其解析也相对来说是比较简单的。汉字在汉字库中的索引一般会遵循GB2312/GBK编码规则,GB2312/GBK规定汉字编码由2个字节组成,其中低字节区码,高字节为位码。本文以最常见的UCDOS中16x16的宋体字库HZK16来演示汉字的显示方法,HZK16中汉字的存放基于GB2312编码的顺序,每个汉字的点阵数据占32个字节,每个字节原创 2012-11-16 17:19:45 · 7843 阅读 · 12 评论 -
用C语言简单演示如何借助zlib库实现文件的压缩和解压缩
不少网友读完zlib库compress和uncompress函数的使用方法这篇文章之后,仍然无法独立完成简单的文件压缩和解压缩功能,为此作者在这里追加这样的演示代码。问题的根源在于这些网友对于字符串和字节流的概念非常的模糊,对文本文件和二进制文件的区别常常模棱两可,其实字节流可以表示所有的数据,二进制文件才是任何文件的本质。字节流是一个字节接一个字节,并没有结束符号,所以需要给它一个长度信息。二进原创 2012-11-13 14:48:14 · 29436 阅读 · 26 评论 -
用C语言实现Sieve of Atkin算法
Sieve of Atkin是一种快速的素数筛选算法,算法比较成熟和简单,http://en.wikipedia.org/wiki/Sieve_of_Atkin中的描述已经非常的细致,作者撰写此文的目的在于,对如何把伪代码转为C代码作一个引导,参考如下的示例。#include #include /* limit ← 1000000 */#define LIMIT (1000000)原创 2012-11-08 10:50:15 · 4102 阅读 · 7 评论 -
用C语言检测文本编码的方法
我们经常会想知道某些文本文件的编码,可是编码检测却并不是一件简单的事情,它需要对文本进行采样,统计分析后再进行字符集的匹配,不过值得庆幸的是有uchardet(https://code.google.com/p/uchardet/)这样的开源库可以帮忙这项艰巨的任务。uchardet是一个开源的用于文本编码检测的C语言库,其功能模块是用C++实现的,通过一定数量的字符样本独立的分析出文本的编码原创 2012-11-01 14:49:34 · 14505 阅读 · 11 评论 -
用C语言实现字符串反转函数strrev的经典方法
字符串反转函数strrev不是C语言标准库函数,很多C语言编译器并没有提供对它的支持,比如你在Linux下输入Shell命令man 3 strlen,屏幕上会显示,STRLEN(3) Linux Programmer's Manual STRLEN(3)NAME strlen - calculate t原创 2012-10-29 15:59:04 · 30698 阅读 · 9 评论 -
C语言利用Cairo图形库绘制太极图
许多人对直接用C语言绘图仍然停留在Turbo C的graphics.h年代,或许也有教育老化的原因,毕竟曾经的经典早已成往事,与其想尽各种办法寻找与其兼容的图形库,不如顺势拥抱灿烂的明天。Cario(http://cairographics.org/)是一个非常出色的2D图形库,著名的GTK+3.0完全采用Cario作为绘图引擎,由此可见它的强大和吸引力。Cario支持X Window,Qua原创 2012-10-31 10:09:09 · 23967 阅读 · 19 评论 -
介绍给新手的一种C语言学习方法
对于C语言的学习,不同的人有不同的经历和不同的方法,当中许多方法都具备相对完整的步骤和不错的功效。然而事过境迁,多年以后回头看看走过的路,却很难理顺当初所留下的痕迹。培训新同事或者是在优快云上解答问题的时候,发现当中有些不错的苗子,由于缺乏适当的引导,最终会很长一段时间陷入不必要的泥潭之中。这可以说是作者写下这篇文章的出发点,希望能让新手学习C语言的时候不再那么迷惘和彷徨。上梁不正下梁歪原创 2012-10-26 13:36:24 · 26228 阅读 · 76 评论 -
用C语言实现面向对象程序设计(二)
上集对OOSM宏包及其应用作了直观的介绍,下面我们来看看ccirc/crect/csqua等对象具体的描述方式。接口(interface)对行为进行抽象,利用它可以实现类的多态性,imeas.h定义了一个测量周长和面积的接口:#ifndef __IMEAS_H__#define __IMEAS_H__#include "oosm.h"/* Measuring Interfac原创 2013-01-22 10:03:48 · 2725 阅读 · 0 评论