make some notes 7.30
mapfile
va
getopt
linux 的shell 通常会预先替你处理 参数中的通配符。
而windows的dos shell 期望用户的程序自己处理通配符
unicode是恶魔!
接下来自己的计划
速度写完第四章,然后正式转入ubuntu
win的judge就当是业余项目,鼓捣下就算了。
主攻还是apue,写些小project练手。
当然出题什么的,就当休闲了。
论文吧,也比较重要,但首要还是找到好idea。
最近做的无聊题目
好无聊,于是就做下题目了
http://poj.org/problem?id=3167
一道KMP好题
http://poj.org/problem?id=3716
一道概率题,复习了好多东西
http://poj.org/problem?id=2797
一道题意题。搞到最后是个线性规划,但是可以水过。
http://poj.org/problem?id=3553
看似个拓扑,其实是个Dijkstra。
需要比较深刻的理解kmp的过程和性质
把数据改回来了。这道题我用了很多很无聊的方法, 为的就是不用解方程。。。
计算结构体成员的偏移量的宏
有这么一个宏
#define MY_DEFINE(structure, member) ((int) & ((structure *) 0 -> member))
因为是某笔试的选择题,我又不知道选项,所以纠结了很久。
后来知道了“偏移量”的概念,从而也明白了这是一个计算结构体成员的偏移量的宏。
首先
(structure *) 0
是一个structrure类型的指针,但不指向任何对象;对其成员的赋值和访问都是非法的。
但是,我们却可以对这个指针进行取地址操作,对其成员也是一样的。
因此,
((int) & ((structure *) 0 -> member))
返回的就是空指针的成员的地址。
而由偏移量的定义我们知道p.member的偏移量可以用 &p.member - &p来计算,而
& ((structure *) 0
的值自然是0.
所以这个宏自然就是用来计算结构体成员的偏移量的:)
再测试页面补丁
快显示出来吧?
??