Browsed by
月度归档: 2009年5月

一个C的序列化库tpl

一个C的序列化库tpl

tpl(http://tpl.sourceforge.net/)是一个开源的小项目,其主要是提供一个可以序列化或反序列化C语言数据的一个API函数库。tpl号称是最有效率的也是最快的,它可以把你内存中的数据存放到文件中,并可以在你需要的时候用文件中反序例化到内存变量中。而且这个函数库没有依赖于别的函数库。

下面是一个简单的示例(来源于其主页)

把一个数组(“序号”和“人名”)序例化到文件中。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (11 人打了分,平均分: 3.36 )
Loading...
谁说C语言很简单?

谁说C语言很简单?

前两天,Neo写了一篇《语言的歧义》其使用C语言讨论了一些语言的歧义。大家应该也顺便了解了一下C语言中的很多不可思异的东西,可能也是你从未注意到的东西。

是的,C语言并不简单,让我们来看看下面这些示例:

  1. 为什么下面的代码会返回0?(这题应该很简单吧)

      int x;
      return x == (1 && x);
    

    本题主要是关于C/C++中变量初始化的问题。

  2. 阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (27 人打了分,平均分: 4.00 )
Loading...
Web设计的速查卡

Web设计的速查卡

速查卡不仅仅可能帮助我们记住一些重要的东西,而且可以放在手边,当我们需要的时候,可以很快地查找。

在本篇文章中,你可以看到28个相当不错的关于Web设计的速查卡,它们分别是关于:Photoshop, Dreamweaver, 颜色, 排版, 其它Web设计相关的。他们都是一页纸,可以方便你很快地打印出来。

Photoshop

Photoshop CS3 快捷键速查卡

Photoshop CS3 Keyboard Shortcuts Cheat Sheet - screen shot.Downloads: PDF (Windows), PDF (Mac)

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (9 人打了分,平均分: 3.67 )
Loading...
语言的歧义

语言的歧义

语言是人与人相互沟通的途径,而计算机语言则是人和计算机沟通的途径。就算是任何再完美的自然语言都会有歧义,但是又是什么让人和计算计算机间产生了歧义呢?
下面这篇文章来自Gowri Kumar的Puzzle C一文。我做了一些整理,挑选了其中的一些问题,并在之后配上相应的答案(这些答案是我加的,如果需要原版的答案可以直接和本文作者Gowri Kumar联系,作者的联系方式可以从这里得到)。

puzzle 1

此段程序的作者希望输出数组中的所有元素,但是他却没有得到他想要的结果,是什么让程序员和计算机产生歧义?

#include <stdio.h>
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};
int main()
{
    int d;

    for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
        printf("%d\n",array[d+1]);

    return 0;
}

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (27 人打了分,平均分: 4.30 )
Loading...
Linux磁盘使用命令du的改进

Linux磁盘使用命令du的改进

我们知道,在Linux下,如果你想知道当前目录下,每个文件或子目录的尺寸,你可以使用du命令来完成这一动作。如:

$  du -sh *

这个命令可以以K,M,G的方式显示每个文件和子目录的大小。我们把这种方式叫做,human-readable,也就是可以让人读的方式,如下所示:

8.4G Desktop
2.6G Documents
12K keys
12M Pictures
536K scripts

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (6 人打了分,平均分: 2.33 )
Loading...
22条经典的编程引言

22条经典的编程引言

下面的这些经典的引言来自英文,也许有些我翻译的是不很好,所以,我提供了中英对照,如果有问题,请大家指正。

 

过早的优化是万恶之源。Premature optimization is the root of all evil!
– Donald Knuth

 

在水里行走和以一个需求规格进行软件开发,有一点是相同的,那就是如果水或需求都被冻住不了,那么行走和软件开发都会变得容易。Walking on water and developing software from a specification are easy if both are frozen
– Edward V Berard

 

Hofstadter 定理:“一件事情总是会花费比你预期更多的时间,就算是你已经考虑过本条Hofstadter 定理”。It always takes longer than you expect, even when you take into account Hofstadter’s Law.
– Hofstadter’s Law

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (17 人打了分,平均分: 4.06 )
Loading...
关于C++构造函数的FAQ

关于C++构造函数的FAQ

下面是一些关于C++构造函数的FAQ。你能回答得出来吗?你可以点链接查看答案,不过是英文版的。他们来自于C++ FAQ Lite。当然,也有中文版的,只可惜中文版的太老了,只更新到了2001年。在C++ FAQ Lite上还有很多关于其它部分的FAQ,大家可以去看看。

[1] 构造函数是用来干什么的?

[2] List x;List x();有什么不同?

[3] 是否一个类的构造函数可以调用另一个构造函数来初始化自己?

[4] 是否Fred类的默认的函数函数就一定是Fred::Fred()?

[5] 如果要创建一个Fred 对像数组,什么样的构数函数会被调用?

[6] 构造函数初始化成员变量时,用 “初始化列表” 还是 “赋值”?

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (5 人打了分,平均分: 2.60 )
Loading...
5个不错的3D素材网站

5个不错的3D素材网站

你也许并不是一个创建3D图形的好手,你也许只能创建一些原始的东西,如:停止或灯炮标志等等这些小孩子玩的东西。而我们现实世界则需要更复杂更牛的东西,比如说一个人物,一个机车等等。这里有史上最好的5个网站,你可以通过这些网站找到你想要的模型,这些3D的模型或资源对你开发游戏一定会有很大的帮助。

3DRT

这是一个迄今为止最好的站点。不仅仅因为这个站点有很多非常专业的模型,而且这个站点在收费方面还不是太坏——经常会有一些折扣。几乎,所有的模型都是动两国的,而且他们还是有皮肤的。他们有各式各样样的格式,并且提供PSD文件,这样方便你创建自己的皮肤。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (5 人打了分,平均分: 2.60 )
Loading...
十个你可能不曾用过的Linux命令

十个你可能不曾用过的Linux命令

下面可能是你不曾用过后十个Linux的命令。相当的有用。

1)pgrep

pgrep名字前有个p,我们可以猜到这和进程相关,又是grep,当然这是进程相关的grep命令。不过,这个命令主要是用来列举进程ID的。如:

$ pgrep -u hchen
22441
22444

这个命令相当于:

ps -ef | egrep '^hchen' | awk '{print $2}'

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (8 人打了分,平均分: 3.38 )
Loading...