font.conf

阅读全文

emacs + cscop

      生成 project 文件列表,
find -type f | grep -E '\.[chS]$' > cscope.files
生成 cscope 索引文件, -k 专门用于生成 linux kernel 源码的索引
cscope -b -k
    常用的按键
C-c s C-h 查看所有的 cscope 相关的按键
C-c s a 设定索引文件所在目录
C-c s c 查找调用该函数的地方
C-c s g 查找该符号的全局定义
C-c s f 查找该符号对应的文

lisp 点滴 关于变量,eq

 

 L3also has a list <(A B C) as its value, but it is a different list than the one shared by L1 and L2

 

(setq L1 (list 'a 'b 'c))
-> (A B C)

 (setq L2 L1)
-> (A B C)

 (eq L1 L2)
-> T

 (setq L3 (list 'a 'b 'c))
-> (A B C)

 (eq L3 L1)
-> NIL

 

用一行代码交换a和b的值

转自 http://cookinglinux.cn/one-line-change-a-and-b.html

直接这样问你,你可能一时想不到答案,不过我们可以把问题拆分出来看。

现有两个变量a与b,请用代码实现a与b的值相互交换。

你肯定会说,这是一个简单得不能再简单的问题了,使用一个中间变量tmp直接进行交换就行了。高级一点就使用指针交换。

那好,如果要求你不允许使用tmp变量就进行交换,你会怎么做?

我唯一想到的就是把a”藏”在b里边,就像这样:

a += b;
b = a - b;
a -= b;

可能你更喜欢异或:

a ^= b;
b ^= a;
a ^= b;

离答案越来越近了,现在要求你,只用一行代码交换a,b的值。

可以使用替换法,就像这样:

a -= (b = (a += b) - b);

a ^=(b ^= (a ^= b));