上海图书馆vs北京图书馆
上海图书馆vs北京图书馆
提交者 : hUFEY 于 北京时间 2003-12-17 00:24:52
上海图书馆给外地人办证
俺就是新馆第一个外地人借书证的拥有者
上海图书馆4楼很好,外文期刊杂志,很全,也很新。
1楼落地窗下那块地方也不错。
以前我大部分周末都泡在上海图书馆了
北京图书馆,现在老江题字的叫国家图书馆。
楼老点,可是冬天感觉很温暖。
脚下的那个碎橡胶地板块踩上去很舒服。
我办的是阅览证,没办外借证,好像外地身份证
办不了外借证,至少要凭个介绍信啥的。
也有一个外文期刊阅览室,但是像Time之类的就是半开架的,
要填表登记,我跟管理员抱怨过,一个老头,他听说
上海随便看也叹气说“北京还是保守啊”,种类也不少,
但大部分都是极专业的期刊,反倒是一些ACM Journal,IEEE Journal
和类似PCMag,Byte这种都没有。
但北京图书馆有个外文图书阅览室,非常棒,更新很快,
计算机类的大概那边出了1两个月就能有。不知上海图书馆现在有没有
类似的阅览室。其实北图还有一个老馆在北海文津街,经常搞些
讲座,请的净是名人学者。老馆好像有些宝贝书吧,但是我兴趣不大。
北京图书馆算国家图书馆,跟上海图书馆地位相当的要算首都图书馆,
在潘家园。建筑看上去很大,进去后有逼仄的感觉,特别不痛快。
去过一回,找外文期刊阅览室,结果挂个牌,跟中文期刊室在一起,
就一个小书架。不超过10种,有people之类的,好像还有简氏防务周
刊和摄影类的什么的。其他的没看。
办证,上海当年的临时阅览证好像是10块一个月,参考阅览证100多1年
吧。国图,10块钱阅览证100块押金好像,1年,跟牡丹卡坐在一起;
临时阅览证就是一张纸,当天有效。首都图书馆几块钱来着,也是1个月。
记一下gcc for MIPS compiler目前的bugs
要不时间长了就忘了
参照 Unix Programming Environment 来看NULL pointer
C FAQ
5.2: How do I get a null pointer in my programs?
… …
However, an argument being passed to a function is not
necessarily recognizable as a pointer context, and the compiler
may not be able to tell that an unadorned 0 “means” a null
pointer. To generate a null pointer in a function call context,
an explicit cast may be required, to force the 0 to be
recognized as a pointer. For example, the Unix system call
execl takes a variable-length, null-pointer-terminated list of
character pointer arguments, and is correctly called like this:
execl(”/bin/sh”, “sh”, “-c”, “date”, (char *)0);
If the (char *) cast on the last argument were omitted, the
compiler would not know to pass a null pointer, and would pass
an integer 0 instead. (Note that many Unix manuals get this
example wrong.)
… ….
《Unix 开发环境》第8章 8.9 小节
在使用ANSI C原型之前,对e x e c l , e x e c l e和e x e c l p三个函数表示命令行参数的一般方法是:
char * a rg 0, char *a rg 1, …, char * a rg n, (char *) 0
应当特别指出的是:在最后一个命令行参数之后跟了一个空指针。如果用常数0来表示一个空
指针,则必须将它强制转换为一个字符指针,否则它将被解释为整型参数。如果一个整型数的
长度与char *的长度不同,e x e c函数实际参数就将出错。
还真有不是0的NULL,C语言的各种实现太乱了
5.17: Seriously, have any actual machines really used nonzero null
pointers, or different representations for pointers to different
types?
A: The Prime 50 series used segment 07777, offset 0 for the null
pointer, at least for PL/I. Later models used segment 0, offset
0 for null pointers in C, necessitating new instructions such as
TCNP (Test C Null Pointer), evidently as a sop to all the extant
poorly-written C code which made incorrect assumptions. Older,
word-addressed Prime machines were also notorious for requiring
larger byte pointers (char *’s) than word pointers (int *’s).
The Eclipse MV series from Data General has three
architecturally supported pointer formats (word, byte, and bit
pointers), two of which are used by C compilers: byte pointers
for char * and void *, and word pointers for everything else.
Some Honeywell-Bull mainframes use the bit pattern 06000 for
(internal) null pointers.
The CDC Cyber 180 Series has 48-bit pointers consisting of a
ring, segment, and offset. Most users (in ring 11) have null
pointers of 0xB00000000000. It was common on old CDC ones-
complement machines to use an all-one-bits word as a special
flag for all kinds of data, including invalid addresses.
The old HP 3000 series uses a different addressing scheme for
byte addresses than for word addresses; like several of the
machines above it therefore uses different representations for
char * and void * pointers than for other pointers.
The Symbolics Lisp Machine, a tagged architecture, does not even
have conventional numeric pointers; it uses the pair
(basically a nonexistent handle) as a C null
pointer.
Depending on the “memory model” in use, 8086-family processors
(PC compatibles) may use 16-bit data pointers and 32-bit
function pointers, or vice versa.
Some 64-bit Cray machines represent int * in the lower 48 bits
of a word; char * additionally uses the upper 16 bits to
indicate a byte address within a word.
References: K&R1 Sec. A14.4 p. 211.
note of C FAQ
颠覆了我多年的观念
5.9: If NULL and 0 are equivalent as null pointer constants, which
should I use?
A: Many programmers believe that NULL should be used in all pointer
contexts, as a reminder that the value is to be thought of as a
pointer. Others feel that the confusion surrounding NULL and 0
is only compounded by hiding 0 behind a macro, and prefer to use
unadorned 0 instead. There is no one right answer. (See also
questions 9.2 and 17.10.) C programmers must understand that
NULL and 0 are interchangeable in pointer contexts, and that an
uncast 0 is perfectly acceptable. Any usage of NULL (as opposed
to 0) should be considered a gentle reminder that a pointer is
involved; programmers should not depend on it (either for their
own understanding or the compiler’s) for distinguishing pointer
0’s from integer 0’s.
NULL should *not* be used when another kind of 0 is required,
even though it might work, because doing so sends the wrong
stylistic message. (Furthermore, ANSI allows the definition of
NULL to be ((void *)0), which will not work at all in non-
pointer contexts.) In particular, do not use NULL when the
ASCII null character (NUL) is desired. Provide your own
definition
#define NUL ”
if you must.
References: K&R1 Sec. 5.4 pp. 97-8; K&R2 Sec. 5.4 p. 102.
回到从前。。。。。。
前天干了件大事。
找到了我的破烂并口game pad的驱动
装了mame
开始到处找街机的ROM
找到了雷电、名将、战斧、铁钩船长
想起了上高中时的青春岁月。。。。。。
那会根本不想考什么大学
最大的理想是赶紧上班,赚钱,买台街机放家里。。。。。。
555555555555555,居然都十几年过去了
going down?
Don’t worry linuxers worldwide, SCO is going Down! IBM’s got our backs
This is my first wallpaper so be nice..
I did the whole thing using Gimp. Most of it is just cut+paste of some pictures I found at google.com.
The background of the wallpaper is another wallpaper I found here called flung-plastic.
Hope you like it!