哆啦比猫's Blog - I'm an ArchLinuxer

C++ 全局单例封装 C 语言库

C 语言的很多库都需要在程序开头初始化,程序结束时释放资源。在 C++ 中常规的封装方法是:

module.hh
 1 namespace module
 2 {
 3     // life time management
 4     void init();
 5     void free();
 6 
 7     // operations
 8     void foo();
 9     void bar(int baz);
10 }

这样的 API可以和 C 语言中的对应起来,但是这种 API 极易出错,比如,有可能会在 init 前调用了 foo,也可能在 free 后调用了 bar,可能 init 了多次,也可能忘了 free 等等。本文将讨论这种类型的 API 在 C++ 中该怎样设计才能更安全、更 fool-proof。

继续阅读

[c] 100行实现简单的正则表达式引擎

注:此方法效率不高,仅供学习,产品级代码请使用 regexp 或 pcre 库!

继续阅读

gcc 匿名函数

看了一下 GCC Extentions 的手册,发现了点东西,利用这些东西终于可以实现我幻想很久的匿名函数了!

继续阅读

牛人就是牛啊……

今天因为某原因上了 Ken Perlin 大神的主页,看到右上角显眼的地方有这么一段话:

COMPILE THIS:
main(k){float i,j,r,x,y=-16;while(puts(""),y++<15)for(x
=0;x++<84;putchar(" .:-;!/>)|&IH%*#"[k&15]))for(i=k=r=0;
j=r*r-i*i-2+x/25,i=2*r*i+y/10,j*j+i*i<11&&k++<111;r=j);}

(YOU CAN RUN THE ABOVE CODE WITH codepad)

继续阅读

是时候宣布我的另一个项目了……

……那就是:FrinX 游戏引擎,开源的 GTA(侠盗车手)式游戏引擎

一直都想写,现在终于有能力写了;不过目前还在早期的 alpha 阶段,没有任何可玩性。

由于今天终于把困扰我已久动画功能搞定了,所以来此宣布一下;顺便做一下动画导出技术总结(这个是最让我纠结的)

继续阅读

终于搭建起了栈堆砌式系统的框架了……

前几天下了 .werkkzeug 来玩。这是一个 demoscene 制作工具,RAD 的,设计很巧妙。它沿用了“节点”式的制作方法,但不需要你去“连接”那些节点——粘在一起的节点会被自动连接。学习了一下如何使用,发现这东西真的很合我胃口,只可惜是 Windows-only 的。于是乎一个想法诞生与脑海:要不我写一个类似的 for Linux?

继续阅读

lanos - Lanos' AN OS

终于知道怎么用 gcc 写OS了……

原来 GRUB 载入内核前会切换到 32bit 模式,这样就不用自己写 boot sector / loader / 32bit enabler 了

主页:http://cjsp.sf.net/?page=lanos




© 2010, 2011, 2012, 2013, 2014, 2015-2016 and 2017 Giumo Xavier Clanjor (哆啦比猫/兰威举).
© 2013, 2014, 2015-2016 and 2017 The Dark Colorscheme Designed by Giumo Xavier Clanjor (哆啦比猫/兰威举).
知识共享署名·非商业性使用·相同方式共享 3.0 中国大陆许可协议
| © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee