GNU Emacs for Windows

Windows 下面的编辑器比起 Emacs 都差远了,所以最好还是在 Windows 下面也用 Emacs。

但是很麻烦:

  1. 下载 ntemacs,解压。
  2. 安装 DejaVu Sans Mono 字体。
  3. 复制 MinGW,并将 bin 文件夹添加到环境变量 PATH 中。
  4. 将 .emacs 文件复制到一个地方。

我将以上四步合成到一块了,打包成一个安装文件(谢谢黄轶唯同学帮忙打包),这样就方便多了。有需要的也可以下。里面的 .emacs 文件是我现在正在用的。

下载地址:这里

swap 的速度

今天纠结于 swap 要显式地写出来还是写成函数。写成函数绝对要优美的多。

int main()
{
    int i;
    int a = 1, b = 2, tmp;
    for(i = 1; i <= 100000000; i++)
    {
        tmp = a;
        a = b;
        b = tmp;
    }
 
    return 0;
}

~~~ 一条分隔线 ~~~

void swap(int *a, int *b)
{
    int tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;
}
 
int main()
{
    int i;
    int a = 1, b = 2;
    for(i = 1; i <= 100000000; i++)
    {
        swap(&a, &b);
    }
 
    return 0;
}

显式的 swap 一次要 0.0000000035 秒。
函数的 swap 一次要 0.0000000057 秒。

我还试了一下 C++ 的 inline,发现没有速度的提升。

结论:用函数的 swap。这点速度损失没啥,然而一堆显式的 swap 不仅容易出错还极其影响心情。

一笔画

就是拿着笔,放在纸上不抬起来,画出一些有意思的图形。

但是一般没有这么爽……一般是给你一幅图,让你一笔画出来。这也叫欧拉路径。

说起来特别简单。先找一个连接了奇数个点的点作为起点,把笔放下去。然后开始画,随便画。OK,成功了。

如果所有点都连接到偶数个节点,很好,画到最后又回到了起点。