这是一篇简单的记录。

git

  • 使用 git diff 命令可以查看工作区与暂存区之间的差异。
  • 使用 git diff <gitreversion> 命令可以查看工作区与指定版本之间的差异。
  • 使用 git diff --cached 命令可以查看暂存区与当前 HEAD 指针指向版本之间的差异。
  • 使用 git diff --cached <gitreversion> 命令可以查看暂存区与指定版本之间的差异。
  • 使用 git diff -- <file> 可以查看特定文件在工作区与暂存区之间的差异。
  • 使用 git diff <gitreversion> -- <file> 可以查看特定文件在工作区与指定版本之间的差异。
  • 使用 git diff --cached -- <file> 可以查看特定文件在暂存区与当前 HEAD 指针指向版本之间的差异。
  • 使用 git diff --cached <gitreversion> -- <file> 可以查看特定文件在暂存区与指定版本之间的差异。
阅读全文 »

模板是一个 C++ 的高级特性,它使得程序员可以编写一个类或者函数,以相同的方式处理不同类型的数据。

前段时间在网上看到,有人认为类模板的成员函数必须实现在类模板的定义当中。这与我一直以来的认知是冲突的——我认为类模板和普通的类其实没有什么差别,除了它需要做额外的实例化之外。于是,我翻看了 C++ Primer,并检索了一些资料,就有了这篇文章。

阅读全文 »

指针是 C 语言的精髓。——无名氏
指针是学业不精的程序员的大杀器。——Liam Huang

C 和 C++ 中的指针,是语言中相当犀利的工具。但是它也是一把双刃剑,用得不好,就是毁灭整个工程的大杀器。此篇老调重弹,讲一讲 C 和 C++ 中的指针。

此篇别名:可能是中文网络中关于 C 和 C++ 指针最好的文章。

阅读全文 »

很早以前就知道,编译器做的工作,首先就是读入源码,而后进行词法分析(有预处理的语言,还要先经过预处理器)。但是,一直没有对 C 语言的词法分析过程进行过深入了解。今天又拿起 Koenig 的《C 陷阱与缺陷》,才又读到相关的说明。

阅读全文 »

前作简单介绍了计算机硬件的发展历史和当前计算机硬件的基本结构。我们知道,作为软件开发者,我们几乎只需要知道计算机硬件由 CPU、内存和 I/O 设备组成就可以了,其他细节不一定要详细地了解。

本文我们将简单介绍计算机的层次化结构和操作系统;而后讨论 Linux 中的进程与线程。

阅读全文 »

本文又名:你对真正的 Times 字体一无所知

Times New Roman 在很长时间内是 Windows 平台上 M$ Word 的默认西文字体。所以,很多机构要求作者在文章中使用 Times New Roman 作为西文字体,于是这些作者就开始到处问:怎样在 LaTeX 中使用 Times New Roman 字体。

阅读全文 »