各位访客,你们好,我的博客已经搬到别的空间上去了,现在仍然保持着很高的更新频率。
内容更加精彩、页面更加美观!
75201569
我虽然经常标榜自己小学五年级就开始学C语言了,但时至今日,我依然不算是一个C语言专家。
初中时参加信息学竞赛,学习了Pascal,后来的很长一段时间内,我所写的C程序不过是将Pascal代码翻译成了C代码,甚至我还写过这样的一个程序,来把Pascal代码翻译成C代码。
可是,C语言的真谛是什么?我却一直说不清。是效率?不全面。是简洁?舍本遂末。是艺术?(小样,来深沉是吧?)算是吧,呵呵。
1. 宏定义的秘密:
对于很多非计算机专业的学C语言的人,他们有的是为了考计算机国家等级考试而学的C,有的是选修了学校的公共选修课学的C,我问过他们这样一个问题,宏定义实质上是什么?他们基本上都答不出来。
通俗地说,宏定义是一种字符串的替换。
很多学习Pascal的人一开始转到c时可能会用#define去“定义常量”,并可能会写成这样:
#define max=10;
或者:
#define max 10;
当他们明白宏会在编译前被替换为相应的字符串时,就会明白这样写的错误所在了。
宏定义的另外一个容易引起人误会的是在类型定义上面,比如:
#define pointtoint int *
pointtoint a,b;
这时,你可造成不要以为a和b都是指向int的指针, 根据宏就是字符串替换,这段代码在编译前被替换成了
int * a,b;
看出来了吧,a是指向int的指针,而b不过是一个int型的变量。
2.此const非彼const
用过pascal的人都知道,const是定义一个常量的关键字,如果到了C里面,你还这么以为,那可就大错特错了。
在C语言中,const只是表示所声明的变量是只读的,也就是说这个变量不能出现在赋值语句的左边,但不排除可以用其他方式来改变它的值。
另外,const int *a和int const *a是完全等价的。
但是, const int *a 和 int * const a可就不是一回事了。
const int *a表示a是指向const int型的指针,a本身是可以出现在赋值语句的左边。
int * const a表示a是一个指向int型的const指针,a本身不能出现在赋值语句左边。
3.令人抓狂的类型
在上一小节中已经看到,const int *a,int const *a还有int * const a已经足够让人疯狂的了,但是,如果让你说清楚(*(void(*)())0)();是什么意思,你是不是把我杀了的心都有了?
告诉你,其实这是一个调用一个函数的语句,你相信吗?
我们一层一层的来,0前面的括号表示那是一个强制类型转换,转换成什么呢? 转换成void(*)(),这是一个返回型为void的函数指针,那么,(void(*)())0就是指指向内存地址为0的函数的指针了,把它记为fp,那么语句就变成了(*fp)(),这是指调用fp所指向的函数,这下明白了吧,整个一句话的意思是调用内存地址为0的函数。
再来挑战一下,你能弄明白char * const *(*next)()是什么意思吗?请自己查阅相关书籍,弄清楚个究竟。
如果想获得更多C语言的细节,你可以去一字一句地研读ANSI C的标准,或者你可以看一些C语言方面的著作,比如《C专家编程》、《C陷阱与缺陷》、《C和指针》,本文中的一些内容在这两本书中会有更详尽的解释。
约有半年没去过太傻网了,今天上去发现太傻网也赶上了web2.0的浪潮,加入了很多线上服务,打开页面,你会发现最顶部有一系列的听抄训练营,有VOA,BBS,CNN的,热爱美剧的同学也能找到适合自己的东西,不过太傻提供的美剧资源十分有限。
以VOA听抄为例,周一至周五每天会有一篇新闻,打开一篇新闻后,页面上方的框内有内容提要,还有一些注释,十分贴心。你可以在线听(Firefox用户得装IE TAB才能在线听),也可以下载下来听。下面是一个听抄框,边听边写,然后可以提交,同时你也能看到别的用户听写的内容。右边提供一个讨论区,大家可以针对一些没见过、听不懂的用法进行讨论。
整个一个平台功能非常完整,这个平台将很多志同道合的人聚到了一起,大家不用再像过去那样自己找听力材料、听力原文,遇到不懂的地方再上BBS发贴求助了。
欢迎大家体验。
这个很有意思,同学告诉我时我笑了N久,比如,有四个人,身上分别穿着印有N,I,K,E四个字母的衣服,进到赛场后他们坐在了一起,这样也是不行了,要把他们分开,或者赶出去,再比如,一群人进入赛场后,坐在一起,构成了一个对勾,那也是不行的,呵呵,但是,相信会有人有更有创意的办法来“对付”这规定。
页面十分简洁,只有一幅图 和一个输入网址的框,尝试输入google.com,有一条结果不得不提一下,
存在非法内容:约6,260,000条记录网络封锁
别的结果数量级几乎都是不用逗号就可以解决的,呵呵
大家自己测试一下,就可以知道哪些内容“上面”觉得比较敏感了。
然后,我研究了一下这个网站的原理。结果发现,居然就是以 site:google.com 加上敏感关键字在baidu.com上进行搜索,并统计返回结果数,实在不甚高明,而且极不科学。例如,以新华网进行测试,会发现:
存在非法内容:约356,000条记录共产党
存在非法内容:83条记录产党
存在非法内容:约6,820条记录反共
存在非法内容:4条记录反G
存在非法内容:约703,000条记录中共
存在非法内容:约10,800条记录洗脑
……
这是不是自己抽自己的脸呢?
古时候,英国不允许随便做爱,除非你是贵族,国王。
如果有些人想要小孩了,就到国王那申请,国王就会发给他们一个小牌,挂在门口,证明他们是合法的。
牌子上写的是Fornication Under Consent of the King(在国王允许下做爱)
据说这就是FUCK的起源。
以上内容未经证实,仅供娱乐。
Jazz 是 IBM Rational 面向软件交付技术的下一代协作平台。Jazz 平台经过精心设计,专门面向全球化和跨地域团队开发,将改变人们协作构建软件的方式——提高软件交付的协作性、效率和透明度。您可以将 Jazz 技术视为一个可扩展的框架,能动态地集成和同步与软件开发项目关联的人员、流程和资产。
看了它的介绍,我觉得最吸引人的就是它的社区性,这是托Web2.0之福。而目前的SVN的项目管理和开发人员的交流是分离开的。社会化的团队开发,能够让整个团队更融洽,效率更高。
另外,有一些猜想,如果协同开发平台能够在即时性上做的更好,那将是一个巨大的突破,我想我们的准备开发的super chat可能可以解决这个问题
了 古 前 的 的 谁
它 老 老 互 中 能
的 版 祖 联 国 想
用 式 宗 网 , 像
武 竟 们 上 在 ,
之 会 创 , 最 在
地 又 造 千 开 当
。 有 的 年 放 代
此古书式竖排格式由http://www.cshbl.com/gushu.html在线转换工具生成
欢迎大家来尝试。仔细想想很有意思的。
三个月前,这群人还在世界各地挥舞着五星红旗,举着自制的标语横幅,为奥运火炬的荣光而抗争,还在国外的论坛上用不纯熟的英语,驳斥着西方媒体的傲慢和偏见,还在msn和QQ上,用红色的心连成一串,他们高呼:中国加油!北京加油!他们跳进冰冷的水池中,举起五星红旗。
一个月前,这群人排着队捐钱,抢着献血,抢着奔赴灾区,为素不相识的同胞痛哭不止。他们低头默哀,昂首呐喊,四川挺住!中国加油!
我想,他们原本不是暴力的人群吧
我想,他们应该爱这个国家吧
我想,他们的爱,是那种根本没有想到过任何回报的爱吧
他们有耐心,一只假的不能再假的老虎,等了8个月
他们忍耐,再高的物价、房价、油价,默默承受,他们相信这是外国资本的进攻手段,他们期待着中国能够挺住,熬过去,只要大家的心在一起
他们失业了,只怪自己无能,怪自己性格古怪,沟通能力不强
他们拿着低廉的薪水,却要对得起老板,不要命的劳动
他们为自己国家的企业被外国人的价格讹诈而愤怒
他们为国有财产流失,为中国金融问题,为中国矿产资源的出口痛心
他们不要特权,甚至对特权的存在表示宽容
他们弄不懂股市
他们娶不到妻子
他们的肺到50岁就是黑色的
这些他们都能忍
人生一世,草木一秋
他们只是想知道,什么是公正
原帖系钱老师博客中的一篇回复
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|---|---|---|---|---|---|
| « Jul | ||||||
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | ||||