font.conf
emacs + cscop
生成 project 文件列表,
find -type f | grep -E '\.[chS]$' > cscope.files
生成 cscope
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
-> (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));