<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/feedsky6.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:fs="http://www.feedsky.com/namespace/feed" version="2.0"><channel><atom:link href="http://feed.feedsky.com/fongke" type="application/rss+xml" ref="self"></atom:link><lastBuildDate>Thu, 21 Jun 2007 19:10:37 GMT</lastBuildDate><title>Fongke'Blog</title><description>我将粉碎一切障碍！！！</description><image><url>http://www.feedsky.com/feed/fongke/sc/gif</url><title>Fongke'Blog</title><link>http://www.fongke.cn/blog/</link></image><link>http://www.fongke.cn/blog/</link><language>zh-cn</language><copyright>Copyright 2005 PBlog2 v2.4</copyright><dc:language>zh-cn</dc:language><dc:rights>Copyright 2005 PBlog2 v2.4</dc:rights><item><title>《黑客X档案2007配套光盘》2007年上半年合集(6期)</title><pubDate>Fri, 22 Jun 2007 03:10:37 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463050/1221369/1/item.html</link><description>第一期:&amp;nbsp;&lt;a href=&quot;http://www.gongcn.com/down/down-19c5080b9a6a17be.asp&quot; target=&quot;_blank&quot;&gt;http://www.gongcn.com/down/down-19c5080b9a6a17be.asp&lt;/a&gt;&amp;nbsp;(650.57M)&lt;br/&gt;第二期:&amp;nbsp;&lt;a href=&quot;http://www.gongcn.com/down/down-c3ff0af142b6d3be.asp&quot; target=&quot;_blank&quot;&gt;http://www.gongcn.com/down/down-c3ff0af142b6d3be.asp&lt;/a&gt;&amp;nbsp;(644.92M)&lt;br/&gt;第三期:&amp;nbsp;&lt;a href=&quot;http://www.gongcn.com/down/down-17772e42b59d74cf.asp&quot; target=&quot;_blank&quot;&gt;http://www.gongcn.com/down/down-17772e42b59d74cf.asp&lt;/a&gt;&amp;nbsp;(635.79M)&lt;br/&gt;第四期:&amp;nbsp;&lt;a href=&quot;http://www.gongcn.com/down/down-a5989fd342ae4421.asp&quot; target=&quot;_blank&quot;&gt;http://www.gongcn.com/down/down-a5989fd342ae4421.asp&lt;/a&gt;&amp;nbsp;(643.28M)&lt;br/&gt;第五期:&amp;nbsp;&lt;a href=&quot;http://www.gongcn.com/down/down-743b65f4c0ccd295.asp&quot; target=&quot;_blank&quot;&gt;http://www.gongcn.com/down/down-743b65f4c0ccd295.asp&lt;/a&gt;&amp;nbsp;(645.78M)&lt;br/&gt;第六期:&amp;nbsp;&lt;a href=&quot;http://www.gongcn.com/down/down-845ec0a378394003.asp&quot; target=&quot;_blank&quot;&gt;http://www.gongcn.com/down/down-845ec0a378394003.asp&lt;/a&gt;&amp;nbsp;(646.83M)&amp;nbsp;</description><category>Tools</category><pubDate>Fri, 22 Jun 2007 03:10:37 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=167</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-06-21T19:10:37Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=167</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463050/1221369</fs:itemid></item><item><title>铭记于心</title><pubDate>Fri, 22 Jun 2007 00:12:14 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463051/1221369/1/item.html</link><description>.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color:Red&quot;&gt;&lt;span style=&quot;font-size:28pt&quot;&gt;Good&amp;nbsp;Good&amp;nbsp;Study!&amp;nbsp;Day&amp;nbsp;Day&amp;nbsp;Up!&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;.</description><category>MyLife</category><pubDate>Fri, 22 Jun 2007 00:12:14 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=166</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-06-21T16:12:14Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=166</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463051/1221369</fs:itemid></item><item><title>《邪恶八进制技术黑皮书》第4版(the 4th Edition)</title><pubDate>Fri, 15 Jun 2007 13:34:10 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463052/1221369/1/item.html</link><description>信息来源：邪恶八进制信息安全团队（www.eviloctal.com）&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;《邪恶八进制技术黑皮书》第4版&lt;br/&gt;EvilOctal&amp;nbsp;Security&amp;nbsp;Team&amp;nbsp;Technic&amp;nbsp;Black&amp;nbsp;Paper&amp;nbsp;the&amp;nbsp;4th&amp;nbsp;Edition&lt;br/&gt;&lt;br/&gt;叩响邪恶的网络安全技术之门&lt;br/&gt;　　　　　　　　——序邪恶八进制技术黑皮书&lt;br/&gt;&lt;br/&gt;　　漫漫的技术银河中，无数的网络安全技术高手，像夜空里闪亮的繁星。是他们给还在黑夜中迷惘求学的晚辈们点亮着微弱的长明之灯，照亮了通往神圣最高的技术殿堂的泥泞小路。艰难的学习之中，我们这些有着同一目标而所长不同的朋友们团结了起来。我们没有传说中的业内前辈肩上的勋章，也不是焦点瞩目技术精湛的高手。我们就是我们，一群普通而又努力追求技术的网络安全学习者，幻想每天都能一步一步的向技术的顶峰挪动的苦行人，哪怕只是每天前进一小步，我们也更接近自己的理想。&lt;br/&gt;&lt;br/&gt;——邪恶八进制信息安全团队技术讨论组&amp;nbsp;二零零七年夏&lt;br/&gt;&lt;br/&gt;第四版题记&lt;br/&gt;　　继往开来，邪恶八进制今天依然如Ri中天。条件愈是艰苦，咱们愈是强大！&lt;br/&gt;&lt;div class=&quot;UBBPanel&quot;&gt;&lt;div class=&quot;UBBTitle&quot;&gt;&lt;img src=&quot;http://www.fongke.cn/blog/images/quote.gif&quot; style=&quot;margin:0px 2px -3px 0px&quot; alt=&quot;引用内容&quot;/&gt; 引用内容&lt;/div&gt;&lt;div class=&quot;UBBContent&quot;&gt;解压密码：&lt;br/&gt;www.eviloctal.com&lt;br/&gt;&lt;br/&gt;特别说明：&lt;br/&gt;1.本电子书是邪恶八进制讨论组原创汇总，文章版权归作者所有。仅供个人收藏查阅，商业转载需与作者联系，侵权必究。&lt;br/&gt;2.本电子书设计信息安全中攻防的各个方面，一些代码可能被杀毒软件查杀，如果压缩包校检值与发布校检值吻合您不必担忧。&lt;br/&gt;3.本电子书为了压缩体积，所有图片附件均未打包在内，因此阅读电子书时，它会要求连接网络以便完整显示文章，可以允许。&lt;br/&gt;&lt;br/&gt;特别鸣谢：&lt;br/&gt;1.感谢邪恶八进制团队成员和论坛会员在论坛提交您的原创，感谢这些朋友们无私的共享精神凝结成了此书。&lt;br/&gt;2.感谢邪恶八进制讨论组管理团队成员ring04h无偿制作多本电子书，他的辛勤劳动理应得到大家的肯定。&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;免责声明：&lt;br/&gt;　　《邪恶八进制技术黑皮书》不仅仅是邪恶八进制信息安全团队的原创，其中还纳含了论坛所有会员在原创技术版面提交的原创技术文章及实用工具等，这些都是大家无私奉献的精品。它本身的存在意义在于向互联网提供技术交流共享，方便网友们收藏查阅论坛积累的原创技术资料，努力让信息安全的概念深入人心。所以，《黑皮书》不会存在版权纠纷，文章版权归文章作者个人所有，如第三方商业转载，请您单独与文章作者取得联系，邪恶八进制信息安全团队制作组只承担打包整理的工作。&lt;br/&gt;&lt;br/&gt;再次感谢为《邪恶八进制技术黑皮书》做出无私奉献的人们，你们是最可爱的人！&lt;br/&gt;&lt;br/&gt;下载：&lt;br/&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.eviloctal.com/book/Black%20Paper%204th%20Edition.rar&quot;&gt;下载地址一&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://www.shellvip.com/down/Black%20Paper%204th%20Edition.rar&quot;&gt;下载地址二&lt;/a&gt;</description><category>Tools</category><pubDate>Fri, 15 Jun 2007 13:34:10 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=165</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-06-15T05:34:10Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=165</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463052/1221369</fs:itemid></item><item><title>检测南京教育信息网</title><pubDate>Wed, 30 May 2007 13:13:47 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463053/1221369/1/item.html</link><description>&lt;a href=&quot;http://www.nje.cn/nop.htm&quot; target=&quot;_blank&quot;&gt;http://www.nje.cn/nop.htm&lt;/a&gt;&lt;br/&gt;&lt;img src=&quot;http://www.fongke.cn/blog/attachments/month_0705/62007530131259.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;br/&gt;</description><category>MyLife</category><pubDate>Wed, 30 May 2007 13:13:47 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=164</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-05-30T05:13:47Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=164</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463053/1221369</fs:itemid></item><item><title>SHOW~~~</title><pubDate>Tue, 22 May 2007 20:37:14 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463054/1221369/1/item.html</link><description>show下俺的Ubuntu桌面,用虚拟机装的,貌似不能实现3D&lt;br/&gt;HOHO....&lt;br/&gt;&lt;img src=&quot;http://www.fongke.cn/blog/attachments/month_0705/i2007522202431.gif&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;再来个XP的,WO装了yodm&amp;nbsp;3d工具,还不错的说,&lt;br/&gt;比起vista要那么变态的硬件配置才能用上3D,这个要好的多了&lt;br/&gt;vista装过两次,被他那BT的配置要求打败了,&lt;br/&gt;我的内存512&amp;nbsp;&amp;nbsp;&lt;br/&gt;cpu1.66&lt;br/&gt;~~~&lt;br/&gt;vista给我的评分是1.0&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src=&quot;http://www.fongke.cn/blog/images/smilies/Face_05.gif&quot; border=&quot;0&quot; style=&quot;margin:0px 0px -2px 0px&quot; alt=&quot;&quot;/&gt;&lt;br/&gt;不说了~~~&amp;nbsp;&amp;nbsp;XP&lt;br/&gt;&lt;img src=&quot;http://www.fongke.cn/blog/attachments/month_0705/w2007522202958.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;yodm&amp;nbsp;3d下载:&lt;a href=&quot;http://www.crystalxp.net/galerie/en.id.1250-yodm-3d-christians_-explorer-tools.htm&quot; target=&quot;_blank&quot;&gt;http://www.crystalxp.net/galerie/en.id.1250-yodm-3d-christians_-explorer-tools.htm&lt;/a&gt;&lt;br/&gt;</description><category>MyLife</category><pubDate>Tue, 22 May 2007 20:37:14 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=163</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-05-22T12:37:14Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=163</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463054/1221369</fs:itemid></item><item><title>黑软基地Hackvip.com被黑</title><pubDate>Fri, 18 May 2007 07:20:29 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463055/1221369/1/item.html</link><description>无意间打开黑软基地,被人黑了,呵呵,&lt;br/&gt;没绝对安全~~~&lt;br/&gt;&lt;img src=&quot;http://www.fongke.cn/blog/attachments/month_0705/3200751871945.JPG&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;</description><category>News</category><pubDate>Fri, 18 May 2007 07:20:29 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=162</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-05-17T23:20:29Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=162</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463055/1221369</fs:itemid></item><item><title>邪恶八进制短期C培训教材《说C》（第二部分）</title><pubDate>Wed, 16 May 2007 00:07:44 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463056/1221369/1/item.html</link><description>文章作者：无锋之刃[E.S.T顾问团]&lt;br/&gt;信息来源：邪恶八进制&amp;nbsp;中国&lt;br/&gt;&lt;br/&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;雄关漫道从头越&lt;br/&gt;2.1&amp;nbsp;&amp;nbsp;&amp;nbsp;小是小非的问题&lt;br/&gt;2.1.1&amp;nbsp;&amp;nbsp;&amp;nbsp;常量与变量&lt;br/&gt;&amp;nbsp;&amp;nbsp;编程中用得最多的，大概就是常量和变量了。&lt;br/&gt;*常量&lt;br/&gt;&amp;nbsp;&amp;nbsp;通常常量分两个层次，即物理存储的常量与逻辑常量。物理层面（特指RAM中）的常量并不存在，因为RAM本身就是可读可写的，并没有什么物理机制可以限定RAM中某区域的读写权限。所以存储在RAM中的常量实质是个变量。那为什么称其为常量呢？&lt;br/&gt;&amp;nbsp;&amp;nbsp;一般教程中叙述的常量指的都是逻辑常量，即在逻辑上，此量值是不可改变的。由于RAM中不存在完全的常量，因此程序中的常量是由编译器用变量加上逻辑规则限定而仿真出来的。如下所示：&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;const&amp;nbsp;int&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;/*&amp;nbsp;实质是个变量&amp;nbsp;*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;1;&amp;nbsp;/*&amp;nbsp;哈，编译器知道你“想在逻辑上改变常量值”的意图，不会让你通过的&amp;nbsp;*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;编译器会在逻辑层面严格禁止程序员修改常量的值。但是常量的物理存在是变量，所以我们可以这么干：&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;*a&amp;nbsp;=&amp;nbsp;(int&amp;nbsp;*)&amp;amp;i;&amp;nbsp;/*&amp;nbsp;强制转换地址的类型&amp;nbsp;*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*a&amp;nbsp;=&amp;nbsp;5;&amp;nbsp;/*&amp;nbsp;哈，编译器怎么办？&amp;nbsp;*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;任何编译器都应该允许以上代码通过编译（因为语法上完全正确），不过好的编译器更应该给出一个warning（因为语义上有错）：间接修改常量的值可能会导致错误。程序员不应该写出这样的代码，这根本就是搬石头砸自己的脚。常量就是不可修改的量值，在逻辑上必须完全遵循这一规则。&lt;br/&gt;&amp;nbsp;&amp;nbsp;从表示的方式来看，可以将常量分成两类：存储常量与字面常量（literal&amp;nbsp;constant）。存储常量就是上面说的以变量仿真出来、以二进制形式保存的常量。字面常量则是直接保存在代码中的、以文字形式表现出来的常量。比如：&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;const&amp;nbsp;int&amp;nbsp;b&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*&amp;nbsp;0就是一个字面常量&amp;nbsp;*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;*str&amp;nbsp;=&amp;nbsp;“test!”;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*&amp;nbsp;以引号定界的字符串也是字面常量&amp;nbsp;*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;在编辑期，字面常量常常被修改。而在编译期时字面常量会被编译器转换成二进制值保存在二进制代码区或者全局数据区中。&lt;br/&gt;*变量&lt;br/&gt;&amp;nbsp;&amp;nbsp;变量没什么可说的。变量名起双重作用：作为变量的标识符，作为变量地址的占位符。说白了就是标识人脑比较难于记忆的地址值，然后在代码中为它占个位置。在编辑期看到的所有变量名到了编译期通通会被编译器替换成恰当的地址值（直接值或者是EBX[]这样的寻址方式），感兴趣的读者可以反汇编C代码来看看。&lt;br/&gt;&lt;br/&gt;2.1.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;宏与内联&lt;br/&gt;宏与内联，是形相似而质不同的两个东西。&lt;br/&gt;l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;宏（macro）&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;宏是用预处理指令定义的，因此，宏是由预处理器（preprocessor）处理的。也就是说，编译器看到的文件中是没有任何宏文本的――因为宏已经被预处理器处理过并移除了――存在于文件中的只是处理后的对应代码文本。换句话说，预处理器对待宏，就像“编辑”－》“替换”－》“替换所有”这样的操作，把所有的宏恰当地替成结果文本罢了，即宏本身只是另一段代码文本的别名。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;使用宏很方便，但并不安全。因为宏的语义不符合编译器的语义规则。比如定义一个类似函数的宏：&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#define&amp;nbsp;test(x)&amp;nbsp;x&amp;nbsp;&amp;gt;&amp;nbsp;5?&amp;nbsp;x&amp;nbsp;:&amp;nbsp;x&amp;nbsp;*&amp;nbsp;5&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这样的宏没有语法上的错误（实际上很少会产生宏语法错误），但在语义上却是有问题的。当x是简单的变量名时，语义可能是对的――类似“test(i)”这样的宏调用会被替换成“i&amp;nbsp;&amp;gt;&amp;nbsp;5&amp;nbsp;?&amp;nbsp;i&amp;nbsp;:&amp;nbsp;i&amp;nbsp;*&amp;nbsp;5”。但当x是表达式的时候，结果代码的语义就不一样了――“test(a+b)”会处理成“a+b&amp;nbsp;&amp;gt;&amp;nbsp;5&amp;nbsp;?&amp;nbsp;a+b&amp;nbsp;:&amp;nbsp;a+b&amp;nbsp;*&amp;nbsp;5”――编译器永远不会让这样的代码通过编译。不过还好解决，可以加上小括号来欺骗呆板的预处理器：“test((a+b))”－》“(a+b)&amp;nbsp;&amp;gt;&amp;nbsp;5&amp;nbsp;?&amp;nbsp;(a+b)&amp;nbsp;:&amp;nbsp;(a+b)&amp;nbsp;*&amp;nbsp;5”。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;麻烦吧？但有的时候就连加上小括号也没用了。比如“test((i++))”－》“(i++)&amp;nbsp;&amp;gt;&amp;nbsp;5&amp;nbsp;?&amp;nbsp;(i++)&amp;nbsp;:&amp;nbsp;(i++)&amp;nbsp;*&amp;nbsp;5”……完蛋！本意是要用旧的i值代入宏中求值，然后再加一，但实际的代码却完全不同于想象……也许已经有读者开始愤愤了：（，但这不是预处理器的错，真的。它只是很忠实地按照“文本替换规则”对宏做了处理而已。要怪只能怪程序员，在主观上把函数的调用规则强加在宏身上，根本就是错误的。要解决此类问题，别无它法，用函数吧（如果还不明白，可以自己设计一个MAX(a,&amp;nbsp;b)来看看？）。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;批判完了“函数宏”后，我们再来批判一下“符号宏”。即如下形式定义的宏：&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#define&amp;nbsp;RATIO&amp;nbsp;3.98&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在C代码中符号宏用得相当频繁，因为实在是太好用了。不过只是编程时的好用而已，在调试程序的时候程序员准会被符号宏弄疯的。因为所有的RATIO已经被预处理器替换成了3.98，如果程序出了错，在调试信息里只有3.98这串文本，而不是RATIO这个符号――代码的原作者当然明白，可是毫不知情的后来维护者呢？&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;做人要厚道，所以能不用符号宏就尽量别用吧，我们有更好的解决方案：使用全局具名常量仿真文本常量值：&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;const&amp;nbsp;int&amp;nbsp;RATIO&amp;nbsp;=&amp;nbsp;3.98;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这样一来，与预处理器就毫无瓜葛了，剩下的都是编译器的问题。即便出错了，调试器中显示的也只是ratio而不是3.98了。继任者也不会为此而郁郁了。&lt;br/&gt;提示：宏名和常量名都应尽量使用大写字母和下划线构成。&lt;br/&gt;l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;内联（inline）&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;内联是函数宏的绝佳替代方案：&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;inline&amp;nbsp;int&amp;nbsp;test(int&amp;nbsp;x)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;x&amp;nbsp;&amp;gt;&amp;nbsp;5?&amp;nbsp;x&amp;nbsp;:&amp;nbsp;x&amp;nbsp;*&amp;nbsp;5;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;如此一来，简单的一句“int&amp;nbsp;a&amp;nbsp;=&amp;nbsp;test(i++)”会被编译器（注意，不是预处理器）处理成类似下面的伪代码：&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;a&amp;nbsp;=&amp;nbsp;i&amp;nbsp;&amp;gt;&amp;nbsp;5?&amp;nbsp;i&amp;nbsp;:&amp;nbsp;i&amp;nbsp;*&amp;nbsp;5;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i+=1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;呵呵，知道为什么说宏与内联“形相似而质不同”了吧。根本原因就在于：宏是被预处理器处理的，不具备任何函数调用规则限制（即类型检查）；内联是由编译器处理的，有着各种各样的限制与约束。而且成功内联的函数的代码体积与函数宏差不多，执行效率比普通函数则小多了（因为少了返回地址入栈、参数入栈等指令）。因此应该尽量使用内联函数替代函数宏。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;不过，内联函数有着两个极大的开销：代码体积开销和编译时间开销。这是因为编译器处理内联函数的态度是：把函数中的代码直接插入调用点，将原来的函数调用转换成一段直接的代码。这种行为可以视为“二进制层面的代码替换”。如果在代码中滥用内联函数，则代码的体积会像吹气球一样……&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;编译时间开销则是由C编译模型引起的。简单说一下主要原因：展开内联函数时必须看到完整的函数定义，而内联函数的定义只能放在头文件中。因此必须在调用该内联函数的实现文件（.c文件中）#include此头文件。如果每一个实现文件都这样做，编译器会疯掉的，然后大家们都可以享受喝着咖啡等编译结果的好时光了：）。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;最后注意一下，inline关键字只是提示性的关键字而不是强制性的关键字，编译器有权忽略掉程序员的内联请求――编译器不是那种你说“我要”它就会给你的老实家伙，嘿嘿：P。</description><category>Other</category><pubDate>Wed, 16 May 2007 00:07:44 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=161</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-05-15T16:07:44Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=161</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463056/1221369</fs:itemid></item><item><title>邪恶八进制短期C培训教材《说C》(第一部分)</title><pubDate>Wed, 16 May 2007 00:04:44 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463057/1221369/1/item.html</link><description>文章作者：无锋之刃[E.S.T顾问团]&lt;br/&gt;信息来源：邪恶八进制&amp;nbsp;中国&lt;br/&gt;&lt;br/&gt;章1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C的初体验&lt;br/&gt;&lt;span style=&quot;color:Red&quot;&gt;节1.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;第一次亲密接触&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;95年的时候我刚上初二，学习并不太紧，课余的闲暇时间很多。为了打发掉一些时光，经常会跑去书城买点计算机类的书来啃。也许是命中注定，我买本谭老前辈的《TC程序设计教程》，至此成为地地道道的Cer。而我的C体验，也是从此开始的。&lt;br/&gt;&amp;nbsp;&amp;nbsp;谭老的书写得实在是四平八稳，滴水不漏，有章有法（最难得的是十数年不变，当工具书用可以，当读物不行）。那时候我的知识结构还很简单，本来这样的书是决计看不懂的。但初一的时候恶补过一阵子BASIC，再加上莫大的好奇心，居然愣是在七天内把整本书给啃完了。有人会说吹牛也不用这样，但我真正想要表达的观点是，一周内看完一门编程语言的语法的确不难，问题是能看懂多少？&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;很多人在与C进行第一次亲密接触的时候，大都会被C的简洁与强大所折服，也大都会想要努力把C学习好。可是真正把C搞明白（只是明白，不算熟悉的）的人太少了。原因在于C的语法容易看，想搞懂却不是那么简单的。特别是指针，更是百转千回，把人绕晕了也不见分析得清楚。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;孔老人家曰“学而不思则惘，思而不学则殆”，很有道理。所以我看计算机书籍的方法与别人不太一样，喜欢把自己假设成计算机，按计算机的思路去思考问题。这就是我看C又快又明白的原因。除了花时间在“看”上面，还会根据代码的结构，在脑子“想”这些代码的意思（语义）是什么？相互关系如何？编译器如何会处理这些代码？等等等等。通过把自己代换成编译器，从而把学和思结合，就能顺利地弄清楚上面的各种问题。虽然有点奇怪，但真的有效，呵呵。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;学和思结合固然重要，更关键的问题在于多动手练习。看完不代表懂，懂不代表会用，会用不代表熟练，熟练不代表能赚钱。所以学习C的初级阶段，主要还是通过动手编码来熟悉语法，洞悉语义，达到看一能及二甚至推三的程度，才算小成。多数C学习者过于重视看书，却忽略了练习，实在是大大的不该。&lt;br/&gt;&amp;nbsp;&amp;nbsp;练习的方法也不应该是死做书上的习题。习题的目的是帮助学习者巩固语法知识，便于其熟练使用而已。学习者做完了习题最多是懂得怎么用语法，但还没有到懂得何时用什么语法的程度。要想达到自由地编程，或者是下意识地编程的程度，必须是分析实际的功能需求，仿照已有的程序来编码才可达成。比方说一个菜单，看的人大概就是会用，但程序员应该从编程的角度去看这个菜单。有目的地思考“我如何实现这个菜单的功能”之类实际问题，更能锻炼出真正的编程能力，而不是简单地应试。换句话说，就是先懂得分析，然后才懂得设计，最后是懂得编码。编码人人都能懂，但分析设计却不是个个都会的。这也可算是编程爱好者与程序员的本质区别了吧。&lt;br/&gt;&lt;br/&gt;节1.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;学习顺序简论&lt;br/&gt;我的学习顺序，比较喜欢安排成这样：&lt;br/&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;先看一遍语法；&lt;br/&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;用语法把想实现的软件功能实现出来；&lt;br/&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;回头再看一遍语法；&lt;br/&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;考虑此语法上的高层结构，比如建模。&lt;br/&gt;看第一遍语法，主要是为了熟悉语法结构、语言要素等等基本知识。学习过其它语言的人可以在这个阶段进行语法比较。第二步则是练习阶段，主要是巩固语法的使用。而看第二遍语法是复习语法，补充细节，把没有来得及看或者尚未理解的细节知识纳入知识结构之中。最后一个阶段就进入到高层面进行抽象，即如何使用此语言来对问题建模。&lt;br/&gt;这个顺序的前提假设是读者已经具备一定的语言基础。如果是初学者，那么可以在第一步中加入习题练习，即语法学习与实践练习交叉进行，但花费时间比较多。但初学者容易在这个比较漫长（甚至反复）的过程中失去信心，这就需要初学者具备一定的心理素质了。C语言不难学，难的是人的心：）。&lt;br/&gt;当然这个顺序不单只是应用在C语言的学习上，也可以应用在其它方面。其实顺序不是问题，最关键的是要有信心、恒心和耐心。&lt;br/&gt;&lt;br/&gt;1.3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;经典C代码&lt;br/&gt;&amp;nbsp;&amp;nbsp;几乎每本C教程的第一个代码片段都类似下面的代码（可以在任何C编译器上编译通过，如果不能的话，把你的编译器扔了：）：&lt;br/&gt;#include&amp;nbsp;&amp;lt;stdio.h&amp;gt;&lt;br/&gt;&lt;br/&gt;int&amp;nbsp;main(int&amp;nbsp;argc,&amp;nbsp;char&amp;nbsp;**argv)&lt;br/&gt;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;printf(“hello&amp;nbsp;world!\n”);&lt;br/&gt;&amp;nbsp;&amp;nbsp;return&amp;nbsp;0;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;很简单的代码段，但已经蕴涵了不少C的语法结构。只是大家都已经司空见惯，没什么感觉而已了。其实仔细看看，还是有点分析的味头。&lt;br/&gt;首先应该看出的是C语言采用的“头文件/实现文件”结构。其中头文件存放预处理指令（preprocess&amp;nbsp;instruction）、声明（declaration）、枚举/结构/联合定义（enumerator/structure/union&amp;nbsp;definition）、内联函数定义（inline&amp;nbsp;function&amp;nbsp;definition）、类型定义（type&amp;nbsp;definition）等公共的、可以重复包含的内容；实现文件存放预处理指令、静态/全局变量定义（static/global&amp;nbsp;variable&amp;nbsp;definition）、函数定义（function&amp;nbsp;definition）等不可重复包含的内容。&amp;nbsp;不同的代码开放层次可以开放不同的代码文件（比如在分放代码时可以只提供头文件和Lib文件，而开源时则可以再附加上实现文件）。&lt;br/&gt;&amp;nbsp;&amp;nbsp;其次应该注意的是main函数。正如进入一个单位办事必须先从大门进入一样，C程序中的逻辑入口点是main函数。此函数的作用有三个。第一个是为操作系统向程序提供的参数保留占位符；第二个则是程序向操作系统提供的返回状态保留占位符；最后一个是为操作系统替开辟此程序的新进程提供进入点。每个C工程都必须有唯一一个main函数（保存在某个实现文件中）。&lt;br/&gt;很多人不太在意main函数的写法，经常写成如下形式：&lt;br/&gt;void&amp;nbsp;main()&lt;br/&gt;其实这是不对的，因为这不是标准C中规定的写法，因此是不可移植的。以下两种形式才是具备移植能力的标准写法：&lt;br/&gt;int&amp;nbsp;main();&lt;br/&gt;int&amp;nbsp;main(int&amp;nbsp;argc,&amp;nbsp;char&amp;nbsp;**argv);&lt;br/&gt;&amp;nbsp;&amp;nbsp;最后值得注意的是C语言的“按功能分离代码形成模块”的设计原则。使用此原则可以较好地组织代码，形成良性结构。比如将所有标准的输入/输出代码写入不同的实现文件中，再由一个统一、包含了所有输入/输出函数原型的头文件来对外提供访问信息。读者应该严格按这个原则来进行模块划分和代码编写。&lt;br/&gt;&amp;nbsp;&amp;nbsp;以上就是我们可以从极小化的经典C代码中看出的一些东西。不过每一个东西都足够让我们研究好长一段时间了（主要是“意会”的时间太长了：（）。Let&amp;nbsp;us&amp;nbsp;go！&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color:Red&quot;&gt;节1.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;学习顺序简论&lt;/span&gt;&lt;br/&gt;我的学习顺序，比较喜欢安排成这样：&lt;br/&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;先看一遍语法；&lt;br/&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;用语法把想实现的软件功能实现出来；&lt;br/&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;回头再看一遍语法；&lt;br/&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;考虑此语法上的高层结构，比如建模。&lt;br/&gt;&amp;nbsp;&amp;nbsp;看第一遍语法，主要是为了熟悉语法结构、语言要素等等基本知识。学习过其它语言的人可以在这个阶段进行语法比较。第二步则是练习阶段，主要是巩固语法的使用。而看第二遍语法是复习语法，补充细节，把没有来得及看或者尚未理解的细节知识纳入知识结构之中。最后一个阶段就进入到高层面进行抽象，即如何使用此语言来对问题建模。&lt;br/&gt;&amp;nbsp;&amp;nbsp;这个顺序的前提假设是读者已经具备一定的语言基础。如果是初学者，那么可以在第一步中加入习题练习，即语法学习与实践练习交叉进行，但花费时间比较多。但初学者容易在这个比较漫长（甚至反复）的过程中失去信心，这就需要初学者具备一定的心理素质了。C语言不难学，难的是人的心：）。&lt;br/&gt;&amp;nbsp;&amp;nbsp;当然这个顺序不单只是应用在C语言的学习上，也可以应用在其它方面。其实顺序不是问题，最关键的是要有信心、恒心和耐心。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</description><category>Other</category><pubDate>Wed, 16 May 2007 00:04:44 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=160</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-05-15T16:04:44Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=160</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463057/1221369</fs:itemid></item><item><title>[转载]Turbo C(V2.0)编译错误信息</title><pubDate>Wed, 16 May 2007 00:00:59 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463058/1221369/1/item.html</link><description>编译错误信息&lt;br/&gt;&lt;br/&gt;　　说明：Turbo&amp;nbsp;C&amp;nbsp;的源程序错误分为三种类型：致命错误、一般错误和警告。其中，致命错误通常是内部编译出错；一般错误指程序的语法错误、磁盘或内存存取错误或命令行错误等；警告则只是指出一些得怀疑的情况，它并不防止编译的进行。&lt;br/&gt;&lt;br/&gt;　　下面按字母顺序A～Z分别列出致命错误及一般错误信息，英汉对照及处理方法：&lt;br/&gt;(一)、致命错误英汉对照及处理方法：&lt;br/&gt;Ａ－Ｂ致命错误&lt;br/&gt;Bad&amp;nbsp;call&amp;nbsp;of&amp;nbsp;in-line&amp;nbsp;function&amp;nbsp;(内部函数非法调用)&lt;br/&gt;分析与处理：在使用一个宏定义的内部函数时，没能正确调用。一个内部函数以两个下划线(__)开始和结束。&lt;br/&gt;Irreducable&amp;nbsp;_expression&amp;nbsp;tree&amp;nbsp;(不可约表达式树)&lt;br/&gt;分析与处理：这种错误指的是文件行中的表达式太复杂，使得代码生成程序无法为它生成代码。这种表达式必须避免使用。&lt;br/&gt;Register&amp;nbsp;allocation&amp;nbsp;failure&amp;nbsp;(存储器分配失败)&lt;br/&gt;分析与处理：这种错误指的是文件行中的表达式太复杂，代码生成程序无法为它生成代码。此时应简化这种繁杂的表达式或干脆避免使用它。&lt;br/&gt;(二)、一般错误信息英汉照及处理方法&lt;br/&gt;#operator&amp;nbsp;not&amp;nbsp;followed&amp;nbsp;by&amp;nbsp;maco&amp;nbsp;argument&amp;nbsp;name(#运算符后没跟宏变元名)&lt;br/&gt;分析与处理：在宏定义中，#用于标识一宏变串。“#”号后必须跟一个宏变元名。&lt;br/&gt;&lt;br/&gt;&amp;#39;xxxxxx&amp;#39;&amp;nbsp;not&amp;nbsp;anargument&amp;nbsp;(&amp;#39;xxxxxx&amp;#39;不是函数参数)&lt;br/&gt;分析与处理：在源程序中将该标识符定义为一个函数参数，但此标识符没有在函数中出现。&lt;br/&gt;Ambiguous&amp;nbsp;symbol&amp;nbsp;&amp;#39;xxxxxx&amp;#39;&amp;nbsp;(二义性符号&amp;#39;xxxxxx&amp;#39;)&lt;br/&gt;分析与处理：两个或多个结构的某一域名相同，但具有的偏移、类型不同。在变量或表达式中引用该域而未带结构名时，会产生二义性，此时需修改某个域名或在引用时加上结构名。&lt;br/&gt;Argument&amp;nbsp;#&amp;nbsp;missing&amp;nbsp;name&amp;nbsp;(参数#名丢失)&lt;br/&gt;分析与处理：参数名已脱离用于定义函数的函数原型。如果函数以原型定义，该函数必须包含所有的参数名。&lt;br/&gt;Argument&amp;nbsp;list&amp;nbsp;syntax&amp;nbsp;error&amp;nbsp;(参数表出现语法错误)&lt;br/&gt;分析与处理：函数调用的参数间必须以逗号隔开，并以一个右括号结束。若源文件中含有一个其后不是逗号也不是右括号的参数，则出错。&lt;br/&gt;Array&amp;nbsp;bounds&amp;nbsp;missing&amp;nbsp;(数组的界限符&amp;#34;]&amp;#34;丢失)&lt;br/&gt;分析与处理：在源文件中定义了一个数组，但此数组没有以下右方括号结束。&lt;br/&gt;Array&amp;nbsp;size&amp;nbsp;too&amp;nbsp;large&amp;nbsp;(数组太大)&lt;br/&gt;分析与处理：定义的数组太大，超过了可用内存空间。&lt;br/&gt;Assembler&amp;nbsp;statement&amp;nbsp;too&amp;nbsp;long&amp;nbsp;(汇编语句太长)&lt;br/&gt;分析与处理：内部汇编语句最长不能超过480字节。&lt;br/&gt;Bad&amp;nbsp;configuration&amp;nbsp;file&amp;nbsp;(配置文件不正确)&lt;br/&gt;分析与处理：TURBOC.CFG配置文件中包含的不是合适命令行选择项的非注解文字。配置文件命令选择项必须以一个短横线开始。&lt;br/&gt;Bad&amp;nbsp;file&amp;nbsp;name&amp;nbsp;format&amp;nbsp;in&amp;nbsp;include&amp;nbsp;directive(包含指令中文件名格式不正确)&lt;br/&gt;分析与处理：包含文件名必须用引号(&amp;#34;filename.h&amp;#34;)或尖括号(&amp;lt;filename&amp;gt;)括起来，否则将产生本类错误。如果使用了宏，则产生的扩展文本也不正确，因为无引号没办法识别。&lt;br/&gt;Bad&amp;nbsp;ifdef&amp;nbsp;directive&amp;nbsp;syntax&amp;nbsp;(ifdef指令语法错误)&lt;br/&gt;分析与处理：#ifdef必须以单个标识符(只此一个)作为该指令的体。&lt;br/&gt;Bad&amp;nbsp;ifndef&amp;nbsp;directive&amp;nbsp;syntax&amp;nbsp;(ifndef指令语法错误)&lt;br/&gt;分析与处理：#ifndef&amp;nbsp;必须以单个标识符(只此一个)作为该指令的体。&lt;br/&gt;Bad&amp;nbsp;undef&amp;nbsp;directive&amp;nbsp;syntax&amp;nbsp;(undef指令语法错误)&lt;br/&gt;分析与处理：#undef指令必须以单个标识符(只此一个)作为该指令的体。&lt;br/&gt;Bad&amp;nbsp;file&amp;nbsp;size&amp;nbsp;syntax&amp;nbsp;(位字段长语法错误)&lt;br/&gt;分析与处理：一个位字段长必须是1—16位的常量表达式。&lt;br/&gt;Call&amp;nbsp;of&amp;nbsp;non-functin&amp;nbsp;(调用未定义函数)&lt;br/&gt;分析与处理：正被调用的函数无定义，通常是由于不正确的函数声明或函数名拼错而造成。&lt;br/&gt;Cannot&amp;nbsp;modify&amp;nbsp;a&amp;nbsp;const&amp;nbsp;object&amp;nbsp;(不能修改一个长量对象)&lt;br/&gt;分析与处理：对定义为常量的对象进行不合法操作(如常量赋值)引起本错误。&lt;br/&gt;Case&amp;nbsp;outside&amp;nbsp;of&amp;nbsp;switch&amp;nbsp;(Case&amp;nbsp;出现在switch外)&lt;br/&gt;分析与处理：编译程序发现Case语句出现在switch语句之外，这类故障通常是由于括号不匹配造成的。&lt;br/&gt;Case&amp;nbsp;statement&amp;nbsp;missing&amp;nbsp;(Case语句漏掉)&lt;br/&gt;分析与处理：Case语必须包含一个以冒号结束的常量表达式，如果漏了冒号或在冒号前多了其它符号，则会出现此类错误。&lt;br/&gt;Character&amp;nbsp;constant&amp;nbsp;too&amp;nbsp;long&amp;nbsp;(字符常量太长)&lt;br/&gt;分析与处理：字符常量的长度通常只能是一个或两个字符长，超过此长度则会出现这种错误。&lt;br/&gt;Compound&amp;nbsp;statement&amp;nbsp;missing&amp;nbsp;(漏掉复合语句)&lt;br/&gt;分析与处理：编译程序扫描到源文件未时，未发现结束符号&amp;nbsp;(大括号)，此类故障通常是由于大括号不匹配所致。&lt;br/&gt;Conflicting&amp;nbsp;type&amp;nbsp;modifiers&amp;nbsp;(类型修饰符冲突)&lt;br/&gt;分析与处理：对同一指针，只能指定一种变址修饰符(如near&amp;nbsp;或far)；而对于同一函数，也只能给出一种语言修饰符(如Cdecl、pascal或interrupt)。&lt;br/&gt;Constant&amp;nbsp;_expression&amp;nbsp;required&amp;nbsp;(需要常量表达式)&lt;br/&gt;分析与处理：数组的大小必须是常量，本错误通常是由于#define常量的拼写错误引起。&lt;br/&gt;Could&amp;nbsp;not&amp;nbsp;find&amp;nbsp;file&amp;nbsp;&amp;#39;xxxxxx.xxx&amp;#39;&amp;nbsp;(找不到&amp;#39;xxxxxx.xx&amp;#39;文件)&lt;br/&gt;分析与处理：编译程序找不到命令行上给出的文件。&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Declaration&amp;nbsp;missing&amp;nbsp;(漏掉了说明)&lt;br/&gt;分析与处理：当源文件中包含了一个struct或&amp;nbsp;union域声明，而后面漏掉了分号，则会出现此类错误。&lt;br/&gt;Declaration&amp;nbsp;needs&amp;nbsp;type&amp;nbsp;o&amp;#114;&amp;nbsp;storage&amp;nbsp;class(说明必须给出类型或存储类)&lt;br/&gt;分析与处理：正确的变量说明必须指出变量类型，否则会出现此类错误。&lt;br/&gt;Declaration&amp;nbsp;syntax&amp;nbsp;error&amp;nbsp;(说明出现语法错误)&lt;br/&gt;分析与处理：在源文件中，若某个说明丢失了某些符号或输入多余的符号，则会出现此类错误。&lt;br/&gt;Default&amp;nbsp;outside&amp;nbsp;of&amp;nbsp;switch&amp;nbsp;(Default语句在switch语句外出现)&lt;br/&gt;分析与处理：这类错误通常是由于括号不匹配引起的。&lt;br/&gt;Define&amp;nbsp;directive&amp;nbsp;needs&amp;nbsp;an&amp;nbsp;identifier&amp;nbsp;(Define指令必须有一个标识符)&lt;br/&gt;分析与处理：#define&amp;nbsp;后面的第一个非空格符必须是一个标识符，若该位置出现其它字符，则会引起此类错误。&lt;br/&gt;Division&amp;nbsp;by&amp;nbsp;zero&amp;nbsp;(除数为零)&lt;br/&gt;分析与处理：当源文件的常量表达式出现除数为零的情况，则会造成此类错误。&lt;br/&gt;Do&amp;nbsp;statement&amp;nbsp;must&amp;nbsp;have&amp;nbsp;while&amp;nbsp;(do语句中必须有While关键字)&lt;br/&gt;分析与处理：若源文件中包含了一个无While关键字的&amp;nbsp;do语句，则出现本错误。&lt;br/&gt;DO&amp;nbsp;while&amp;nbsp;statement&amp;nbsp;missing&amp;nbsp;(&amp;nbsp;(Do&amp;nbsp;while语句中漏掉了符号&amp;nbsp;&amp;#34;(&amp;#34;)&lt;br/&gt;分析与处理：在do语句中，若&amp;nbsp;while关键字后无左括号，则出现本错误。&lt;br/&gt;Do&amp;nbsp;while&amp;nbsp;statement&amp;nbsp;missing；(Do&amp;nbsp;while语句中掉了分号)&lt;br/&gt;分析与处理：在DO语句的条件表达式中，若右括号后面无分号则出现此类错误。&lt;br/&gt;Duplicate&amp;nbsp;Case&amp;nbsp;(Case情况不唯一)&lt;br/&gt;分析与处理：Switch语句的每个case必须有一个唯一的常量表达式值。否则导致此类错误发生。&lt;br/&gt;Enum&amp;nbsp;syntax&amp;nbsp;error&amp;nbsp;(Enum语法错误)&lt;br/&gt;分析与处理：若enum说明的标识符表格式不对，将会引起此类错误发生。&lt;br/&gt;Enumeration&amp;nbsp;constant&amp;nbsp;syntax&amp;nbsp;error&amp;nbsp;(枚举常量语法错误)&lt;br/&gt;分析与处理：若赋给enum类型变量的表达式值不为常量，则会导致此类错误发生。&lt;br/&gt;Error&amp;nbsp;Directive&amp;nbsp;:&amp;nbsp;xxxx&amp;nbsp;(Error指令：xxxx)&lt;br/&gt;分析与处理：源文件处理#error指令时，显示该指令指出的信息。&lt;br/&gt;&lt;br/&gt;Error&amp;nbsp;Writing&amp;nbsp;output&amp;nbsp;file&amp;nbsp;(写输出文件错误)&lt;br/&gt;分析与处理：这类错误通常是由于磁盘空间已满，无法进行写入操作而造成。&lt;br/&gt;_Expression&amp;nbsp;syntax&amp;nbsp;error&amp;nbsp;(表达式语法错误)&lt;br/&gt;分析与处理：本错误通常是由于出现两个连续的操作符，括号不匹配或缺少括号、前一语句漏掉了分号引起的。&lt;br/&gt;Extra&amp;nbsp;parameter&amp;nbsp;in&amp;nbsp;call&amp;nbsp;(调用时出现多余参数)&lt;br/&gt;分析与处理：本错误是由于调用函数时，其实际参数个数多于函数定义中的参数个数所致。&lt;br/&gt;Extra&amp;nbsp;parameter&amp;nbsp;in&amp;nbsp;call&amp;nbsp;to&amp;nbsp;xxxxxx(调用xxxxxxxx函数时出现了多余参数)&lt;br/&gt;File&amp;nbsp;name&amp;nbsp;too&amp;nbsp;long&amp;nbsp;(文件名太长)&lt;br/&gt;分析与处理：#include指令给出的文件名太长，致使编译程序无法处理，则会出现此类错误。通常DOS下的文件名长度不能超过&amp;nbsp;64个字符。&lt;br/&gt;For&amp;nbsp;statement&amp;nbsp;missing&amp;nbsp;)&amp;nbsp;(For语名缺少&amp;#34;)&amp;#34;)&lt;br/&gt;分析与处理：在&amp;nbsp;for语句中，如果控制表达式后缺少右括号，则会出现此类错误。&lt;br/&gt;For&amp;nbsp;statement&amp;nbsp;missing(&amp;nbsp;(For语句缺少&amp;#34;(&amp;#34;)&lt;br/&gt;For&amp;nbsp;statement&amp;nbsp;missing;&amp;nbsp;(For&amp;nbsp;语句缺少&amp;#34;；&amp;#34;)&lt;br/&gt;分析与处理：在&amp;nbsp;for语句中，当某个表达式后缺少分号，则会出现此类错误。&lt;br/&gt;Function&amp;nbsp;call&amp;nbsp;missing)&amp;nbsp;(函数调用缺少&amp;#34;)&amp;#34;)&lt;br/&gt;分析与处理：如果函数调用的参数表漏掉了右手括号或括号不匹配，则会出现此类错误。&lt;br/&gt;Function&amp;nbsp;definition&amp;nbsp;out&amp;nbsp;ofplace&amp;nbsp;(函数定义位置错误)&lt;br/&gt;Function&amp;nbsp;doesn&amp;#39;t&amp;nbsp;take&amp;nbsp;a&amp;nbsp;variable&amp;nbsp;number&amp;nbsp;of&amp;nbsp;argument(函数不接受可变的参数个数)&lt;br/&gt;Goto&amp;nbsp;statement&amp;nbsp;missing&amp;nbsp;label&amp;nbsp;(Goto语句缺少标号)&lt;br/&gt;If&amp;nbsp;statement&amp;nbsp;missing(&amp;nbsp;(If语句缺少&amp;#34;(&amp;#34;)&lt;br/&gt;If&amp;nbsp;statement&amp;nbsp;missing)&amp;nbsp;(If语句缺少&amp;#34;)&amp;#34;)&lt;br/&gt;lllegal&amp;nbsp;initalization&amp;nbsp;(非法初始化)&lt;br/&gt;lllegal&amp;nbsp;octal&amp;nbsp;digit&amp;nbsp;(非法八进制数)&lt;br/&gt;分析与处理：此类错误通常是由于八进制常数中包含了非八进制数字所致。&lt;br/&gt;lllegal&amp;nbsp;pointer&amp;nbsp;subtraction&amp;nbsp;(非法指针相减)&lt;br/&gt;lllegal&amp;nbsp;structure&amp;nbsp;operation&amp;nbsp;(非法结构操作)&lt;br/&gt;lllegal&amp;nbsp;use&amp;nbsp;of&amp;nbsp;floating&amp;nbsp;point&amp;nbsp;(浮点运算非法)&lt;br/&gt;lllegal&amp;nbsp;use&amp;nbsp;of&amp;nbsp;pointer&amp;nbsp;(指针使用非法)&lt;br/&gt;Improper&amp;nbsp;use&amp;nbsp;of&amp;nbsp;a&amp;nbsp;typedef&amp;nbsp;symbol&amp;nbsp;(typedef符号使用不当)&lt;br/&gt;Incompatible&amp;nbsp;storage&amp;nbsp;class&amp;nbsp;(不相容的存储类型)&lt;br/&gt;Incompatible&amp;nbsp;type&amp;nbsp;conversion&amp;nbsp;(不相容的类型转换)&lt;br/&gt;Incorrect&amp;nbsp;commadn&amp;nbsp;line&amp;nbsp;argument:xxxxxx&amp;nbsp;(不正确的命令行参数：xxxxxxx)&lt;br/&gt;Incorrect&amp;nbsp;commadn&amp;nbsp;file&amp;nbsp;argument:xxxxxx&amp;nbsp;(不正确的配置文件参数：xxxxxxx)&lt;br/&gt;Incorrect&amp;nbsp;number&amp;nbsp;format&amp;nbsp;(不正确的数据格式)&lt;br/&gt;Incorrect&amp;nbsp;use&amp;nbsp;of&amp;nbsp;default&amp;nbsp;(deflult不正确使用)&lt;br/&gt;Initializer&amp;nbsp;syntax&amp;nbsp;error&amp;nbsp;(初始化语法错误)&lt;br/&gt;Invaild&amp;nbsp;indrection&amp;nbsp;(无效的间接运算)&lt;br/&gt;Invalid&amp;nbsp;macro&amp;nbsp;argument&amp;nbsp;separator&amp;nbsp;(无效的宏参数分隔符)&lt;br/&gt;Invalid&amp;nbsp;pointer&amp;nbsp;addition&amp;nbsp;(无效的指针相加)&lt;br/&gt;Invalid&amp;nbsp;use&amp;nbsp;of&amp;nbsp;dot&amp;nbsp;(点使用错)&lt;br/&gt;Macro&amp;nbsp;argument&amp;nbsp;syntax&amp;nbsp;error&amp;nbsp;(宏参数语法错误)&lt;br/&gt;Macro&amp;nbsp;expansion&amp;nbsp;too&amp;nbsp;long&amp;nbsp;(宏扩展太长)&lt;br/&gt;Mismatch&amp;nbsp;number&amp;nbsp;of&amp;nbsp;parameters&amp;nbsp;in&amp;nbsp;definition(定义中参数个数不匹配)&lt;br/&gt;&lt;br/&gt;Misplaced&amp;nbsp;break&amp;nbsp;(break位置错误)&lt;br/&gt;Misplaced&amp;nbsp;continue&amp;nbsp;(位置错)&lt;br/&gt;Misplaced&amp;nbsp;decimal&amp;nbsp;point&amp;nbsp;(十进制小数点位置错)&lt;br/&gt;Misplaced&amp;nbsp;else&amp;nbsp;(else&amp;nbsp;位置错)&lt;br/&gt;Misplaced&amp;nbsp;else&amp;nbsp;driective&amp;nbsp;(clse指令位置错)&lt;br/&gt;Misplaced&amp;nbsp;endif&amp;nbsp;directive&amp;nbsp;(endif指令位置错)&lt;br/&gt;Must&amp;nbsp;be&amp;nbsp;addressable&amp;nbsp;(必须是可编址的)&lt;br/&gt;Must&amp;nbsp;take&amp;nbsp;address&amp;nbsp;of&amp;nbsp;memory&amp;nbsp;location&amp;nbsp;(必须是内存一地址)&lt;br/&gt;No&amp;nbsp;file&amp;nbsp;name&amp;nbsp;ending&amp;nbsp;(无文件终止符)&lt;br/&gt;No&amp;nbsp;file&amp;nbsp;names&amp;nbsp;given&amp;nbsp;(未给出文件名)&lt;br/&gt;Non-protable&amp;nbsp;pointer&amp;nbsp;assignment&amp;nbsp;(对不可移植的指针赋值)&lt;br/&gt;Non-protable&amp;nbsp;pointer&amp;nbsp;comparison&amp;nbsp;(不可移植的指针比较)&lt;br/&gt;Non-protable&amp;nbsp;return&amp;nbsp;type&amp;nbsp;conversion&amp;nbsp;(不可移植的返回类型转换)&lt;br/&gt;Not&amp;nbsp;an&amp;nbsp;allowed&amp;nbsp;type&amp;nbsp;(不允许的类型)&lt;br/&gt;Out&amp;nbsp;of&amp;nbsp;memory&amp;nbsp;(内存不够)&lt;br/&gt;Pointer&amp;nbsp;required&amp;nbsp;on&amp;nbsp;left&amp;nbsp;side&amp;nbsp;of&amp;nbsp;(操作符左边须是一指针)&lt;br/&gt;Redeclaration&amp;nbsp;of&amp;nbsp;&amp;#39;xxxxxx&amp;#39;&amp;nbsp;(&amp;#39;xxxxxx&amp;#39;重定义)&lt;br/&gt;Size&amp;nbsp;of&amp;nbsp;structure&amp;nbsp;o&amp;#114;&amp;nbsp;array&amp;nbsp;not&amp;nbsp;known&amp;nbsp;(结构或数组大小不定)&lt;br/&gt;Statement&amp;nbsp;missing；&amp;nbsp;(语句缺少“；”)&lt;br/&gt;Structure&amp;nbsp;o&amp;#114;&amp;nbsp;union&amp;nbsp;syntax&amp;nbsp;error&amp;nbsp;(结构或联合语法错误)&lt;br/&gt;Structure&amp;nbsp;size&amp;nbsp;too&amp;nbsp;large&amp;nbsp;(结构太大)&lt;br/&gt;Subscription&amp;nbsp;missing&amp;nbsp;]&amp;nbsp;(下标缺少‘]’)&lt;br/&gt;Switch&amp;nbsp;statement&amp;nbsp;missing&amp;nbsp;(&amp;nbsp;(switch&amp;nbsp;语句缺少&amp;#34;(&amp;#34;)&lt;br/&gt;Switch&amp;nbsp;statement&amp;nbsp;missing&amp;nbsp;)&amp;nbsp;(switch&amp;nbsp;语句缺少&amp;#34;)&amp;#34;)&lt;br/&gt;Too&amp;nbsp;few&amp;nbsp;parameters&amp;nbsp;in&amp;nbsp;call&amp;nbsp;(函数调用参数太少)&lt;br/&gt;Too&amp;nbsp;few&amp;nbsp;parameter&amp;nbsp;in&amp;nbsp;call&amp;nbsp;to&amp;#39;xxxxxx&amp;#39;(调用&amp;#39;xxxxxx&amp;#39;时参数太少)&lt;br/&gt;Too&amp;nbsp;many&amp;nbsp;cases&amp;nbsp;(Cases太多)&lt;br/&gt;Too&amp;nbsp;many&amp;nbsp;decimal&amp;nbsp;points&amp;nbsp;(十进制小数点太多)&lt;br/&gt;Too&amp;nbsp;many&amp;nbsp;default&amp;nbsp;cases&amp;nbsp;(defaut太多)&lt;br/&gt;Too&amp;nbsp;many&amp;nbsp;exponents&amp;nbsp;(阶码太多)&lt;br/&gt;Too&amp;nbsp;many&amp;nbsp;initializers&amp;nbsp;(初始化太多)&lt;br/&gt;Too&amp;nbsp;many&amp;nbsp;storage&amp;nbsp;classes&amp;nbsp;in&amp;nbsp;declaration&amp;nbsp;(说明中存储类太多)&lt;br/&gt;Too&amp;nbsp;many&amp;nbsp;types&amp;nbsp;in&amp;nbsp;decleration&amp;nbsp;(说明中类型太多)&lt;br/&gt;Too&amp;nbsp;much&amp;nbsp;auto&amp;nbsp;memory&amp;nbsp;in&amp;nbsp;function&amp;nbsp;(函数中自动存储太多)&lt;br/&gt;Too&amp;nbsp;much&amp;nbsp;global&amp;nbsp;define&amp;nbsp;in&amp;nbsp;file&amp;nbsp;(文件中定义的全局数据太多)&lt;br/&gt;Two&amp;nbsp;consecutive&amp;nbsp;dots&amp;nbsp;(两个连续点)&lt;br/&gt;Type&amp;nbsp;mismatch&amp;nbsp;in&amp;nbsp;parameter&amp;nbsp;#&amp;nbsp;(参数&amp;#34;#&amp;#34;类型不匹配)&lt;br/&gt;Type&amp;nbsp;mismatch&amp;nbsp;in&amp;nbsp;parameter&amp;nbsp;#&amp;nbsp;in&amp;nbsp;call&amp;nbsp;to&amp;nbsp;&amp;#39;XXXXXXX&amp;#39;&amp;nbsp;(调用&amp;#39;XXXXXXX&amp;#39;时参数#类型不匹配)&lt;br/&gt;Type&amp;nbsp;missmatch&amp;nbsp;in&amp;nbsp;parameter&amp;nbsp;&amp;#39;XXXXXXX&amp;#39;&amp;nbsp;(参数&amp;#39;XXXXXXX&amp;#39;类型不匹配)&lt;br/&gt;Type&amp;nbsp;mismatch&amp;nbsp;in&amp;nbsp;parameter&amp;nbsp;&amp;#39;YYYYYYYY&amp;#39;&amp;nbsp;in&amp;nbsp;call&amp;nbsp;to&amp;nbsp;&amp;#39;YYYYYYYY&amp;#39;(调用&amp;#39;YYYYYYY&amp;#39;时参数&amp;#39;XXXXXXXX&amp;#39;数型不匹配)&lt;br/&gt;Type&amp;nbsp;mismatch&amp;nbsp;in&amp;nbsp;redeclaration&amp;nbsp;of&amp;nbsp;&amp;#39;XXX&amp;#39;&amp;nbsp;(重定义类型不匹配)&lt;br/&gt;Unable&amp;nbsp;to&amp;nbsp;creat&amp;nbsp;output&amp;nbsp;file&amp;nbsp;&amp;#39;XXXXXXXX.XXX&amp;#39;&amp;nbsp;(不能创建输出文件&amp;#39;XXXXXXXX.XXX&amp;#39;)&lt;br/&gt;&lt;br/&gt;Unable&amp;nbsp;to&amp;nbsp;cr&amp;#101;ate&amp;nbsp;turboc.lnk&amp;nbsp;(不能创建turboc.lnk&amp;nbsp;)&lt;br/&gt;Unable&amp;nbsp;to&amp;nbsp;execute&amp;nbsp;command&amp;nbsp;&amp;#39;xxxxxxxx&amp;#39;(不能执行&amp;#39;xxxxxxxx&amp;#39;命令)&lt;br/&gt;Unable&amp;nbsp;to&amp;nbsp;open&amp;nbsp;include&amp;nbsp;file&amp;nbsp;&amp;#39;xxxxxxx.xxx&amp;#39;&amp;nbsp;(不能打开包含文件&amp;#39;xxxxxxxx.xxx&amp;#39;)&lt;br/&gt;Unable&amp;nbsp;to&amp;nbsp;open&amp;nbsp;inputfile&amp;nbsp;&amp;#39;xxxxxxx.xxx&amp;#39;&amp;nbsp;(不能打开输入文件&amp;#39;xxxxxxxx.xxx&amp;#39;)&lt;br/&gt;Undefined&amp;nbsp;label&amp;nbsp;&amp;#39;xxxxxxx&amp;#39;&amp;nbsp;(标号&amp;#39;xxxxxxx&amp;#39;未定义)&lt;br/&gt;Undefined&amp;nbsp;structure&amp;nbsp;&amp;#39;xxxxxxxxx&amp;#39;&amp;nbsp;(结构&amp;#39;xxxxxxxxxx&amp;#39;未定义)&lt;br/&gt;Undefined&amp;nbsp;symbol&amp;nbsp;&amp;#39;xxxxxxx&amp;#39;&amp;nbsp;(符号&amp;#39;xxxxxxxx&amp;#39;未定义)&lt;br/&gt;Unexpected&amp;nbsp;end&amp;nbsp;of&amp;nbsp;file&amp;nbsp;in&amp;nbsp;comment&amp;nbsp;started&amp;nbsp;on&amp;nbsp;line&amp;nbsp;#(源文件在某个注释中意外结束)&lt;br/&gt;Unexpected&amp;nbsp;end&amp;nbsp;of&amp;nbsp;file&amp;nbsp;in&amp;nbsp;conditional&amp;nbsp;stated&amp;nbsp;on&amp;nbsp;line&amp;nbsp;#&amp;nbsp;(源文件在#行开始的条件语句中意外结束)&lt;br/&gt;Unknown&amp;nbsp;preprocessor&amp;nbsp;directive&amp;nbsp;&amp;#39;xxx&amp;#39;&amp;nbsp;(不认识的预处理指令：&amp;#39;xxx&amp;#39;)Untermimated&amp;nbsp;character&amp;nbsp;constant&amp;nbsp;(未终结的字符常量)&lt;br/&gt;Unterminated&amp;nbsp;string&amp;nbsp;(未终结的串)&lt;br/&gt;Unterminated&amp;nbsp;string&amp;nbsp;o&amp;#114;&amp;nbsp;character&amp;nbsp;constant(未终结的串或字符常量)&lt;br/&gt;User&amp;nbsp;break&amp;nbsp;(用户中断)&lt;br/&gt;Value&amp;nbsp;required&amp;nbsp;(赋值请求)&lt;br/&gt;While&amp;nbsp;statement&amp;nbsp;missing&amp;nbsp;(&amp;nbsp;(While语句漏掉&amp;nbsp;&amp;#39;(&amp;#39;)&lt;br/&gt;While&amp;nbsp;statement&amp;nbsp;missing&amp;nbsp;)&amp;nbsp;(While语句漏掉&amp;nbsp;&amp;#39;)&amp;#39;)&lt;br/&gt;Wrong&amp;nbsp;number&amp;nbsp;of&amp;nbsp;arguments&amp;nbsp;in&amp;nbsp;of&amp;nbsp;&amp;#39;xxxxxxxx&amp;#39;&amp;nbsp;(调用&amp;#39;xxxxxxxx&amp;#39;时参数个数错误)</description><category>Other</category><pubDate>Wed, 16 May 2007 00:00:59 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=159</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-05-15T16:00:59Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=159</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463058/1221369</fs:itemid></item><item><title>出售CN域名</title><pubDate>Tue, 15 May 2007 23:58:22 +0800</pubDate><link>http://item.feedsky.com/~feedsky/fongke/~1219693/12463059/1221369/1/item.html</link><description>出售以下CN域名,有兴趣的联系我&lt;br/&gt;QQ:3892828&lt;br/&gt;Email:&lt;a href=&quot;http://www.fongke.li&quot; target=&quot;_blank&quot;&gt;fongke&lt;/a&gt;@gmail.com&lt;br/&gt;&lt;br/&gt;zqkjxy.cn&amp;nbsp;&amp;nbsp;&amp;nbsp;2007-03-13&amp;nbsp;-&amp;nbsp;2008-03-13&lt;br/&gt;nrss.cn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2007-03-25&amp;nbsp;-&amp;nbsp;2008-03-25&amp;nbsp;&lt;br/&gt;ghacker.cn&amp;nbsp;&amp;nbsp;2007-03-25&amp;nbsp;-&amp;nbsp;2008-03-25&amp;nbsp;&lt;br/&gt;hacker5.cn&amp;nbsp;&amp;nbsp;2007-03-25&amp;nbsp;-&amp;nbsp;2008-03-25&lt;br/&gt;kzdiy.cn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2007-04-15&amp;nbsp;-&amp;nbsp;2008-04-15&amp;nbsp;&lt;br/&gt;gooddir.cn&amp;nbsp;&amp;nbsp;2007-04-24&amp;nbsp;-&amp;nbsp;2008-04-24&amp;nbsp;&lt;br/&gt;yesdir.cn&amp;nbsp;&amp;nbsp;&amp;nbsp;2007-04-24&amp;nbsp;-&amp;nbsp;2008-04-24&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</description><category>Other</category><pubDate>Tue, 15 May 2007 23:58:22 +0800</pubDate><author>Fongke@Gmail.com(fongke)</author><guid isPermaLink="false">http://www.fongke.cn/blog/default.asp?id=158</guid><dc:creator>Fongke@Gmail.com(fongke)</dc:creator><dc:date>2007-05-15T15:58:22Z</dc:date><fs:srclink>http://www.fongke.cn/blog/default.asp?id=158</fs:srclink><fs:srcfeed>http://www.fongke.cn/blog/feed.asp</fs:srcfeed><fs:itemid>feedsky/fongke/~1219693/12463059/1221369</fs:itemid></item></channel></rss>