<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/xgbing" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/xgbing" type="application/rss+xml"></fs:self_link><lastBuildDate>Mon, 01 Dec 2008 12:37:00 GMT</lastBuildDate><title>xgb</title><link>http://blog.csdn.net/xgbing/</link><item><title>C++异常处理机制核心观点总结</title><link>http://blog.csdn.net/xgbing/archive/2008/12/01/3419860.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/3419860.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/3419860.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3419860</trackback:ping><description>C++异常处理机制核心观点: &lt;br /&gt;&lt;br /&gt;0.如果使用普通的处理方式:ASSERT,return等已经 &lt;br /&gt;  足够简洁明了,请不要使用异常处理机制. &lt;br /&gt;&lt;br /&gt;1.比C的setjump,longjump优秀. &lt;br /&gt;&lt;br /&gt;2.可以处理任意类型的异常. &lt;br /&gt;  你可以人为地抛出任何类型的对象作为异常. &lt;br /&gt;  throw 100; &lt;br /&gt;  throw &quot;hello&quot;; &lt;br /&gt;  ... &lt;br /&gt;&lt;br /&gt;3.需要一定的开销,频繁执行的关键代码段避免使用 &lt;br /&gt;  C++异常处理机制. &lt;br /&gt;&lt;br /&gt;4.其强大的能力表现在: &lt;br /&gt;  A.把可能出现异常的代码和异常处理代码隔离开,结构更清晰. &lt;br /&gt;  B.把内层错误的处理直接转移到适当的外层来处理,化简了处理 &lt;br /&gt;    流程.传统的手段是通过一层层返回错误码把错误处理转移到 &lt;br /&gt;   上层,上层再转移到上上层,当层数过多时将需要非常多的判断, &lt;br /&gt;   以采取适当的策略. &lt;br /&gt;  C.局部出现&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/3419860.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Mon, 01 Dec 2008 20:37:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/12/01/3419860.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/12/01/3419860.aspx</guid><dc:creator>xgb</dc:creator></item><item><title>开发U盘的几点体会[转]</title><link>http://blog.csdn.net/xgbing/archive/2008/09/22/2963823.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/2963823.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/2963823.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2963823</trackback:ping><description>&lt;br /&gt;开发U盘的几点体会&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;如果你开发过USB相关项目，理解USB的一些基本概念，例如设备描述符、配置描述符、子类规范等，那么&lt;br /&gt;开发U盘只要概念清晰应该不难。&lt;br /&gt;以下是我开发过程中的几个相关步骤：&lt;br /&gt;保证USB 芯片正常工作，用其他USB成功项目验证硬件连接及固件的正确性 &lt;br /&gt;按Mass Storage协议 Bulk－Only 模式提供描述符，使PC 机控制面板上设备类型出现Mass Storage &lt;br /&gt;Device &lt;br /&gt;响应SCSI指令集中Inquiry 命令，可以出现盘符 &lt;br /&gt;实现FAT16文件系统 &lt;br /&gt;处理SCSI命令集中READ命令及其他UFI命令，可以访问盘符 &lt;br /&gt;处理SCSI命令集中WRITE命令 &lt;br /&gt;U盘开发成功 &lt;br /&gt;开发U盘有三个工具软件应该必备：USBVIEW 察看设备描述符，端点测试等；BUSHOUND 截取USB总线数据&lt;br /&gt;，可分析UFI命令及U盘返回的数&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/2963823.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Tue, 23 Sep 2008 06:49:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/09/22/2963823.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/09/22/2963823.aspx</guid><dc:creator>xgb</dc:creator></item><item><title>USB固件编程</title><link>http://blog.csdn.net/xgbing/archive/2008/09/11/2914375.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/2914375.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/2914375.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2914375</trackback:ping><description>。。&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/2914375.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 12 Sep 2008 00:50:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/09/11/2914375.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/09/11/2914375.aspx</guid><dc:creator>xgb</dc:creator></item><item><title>浅析插到PC上的usb-U盘_生命的开始阶段[软硬]--枚举过程(gliethttp)</title><link>http://blog.csdn.net/xgbing/archive/2008/09/11/2914303.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/2914303.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/2914303.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2914303</trackback:ping><description>&lt;br /&gt;浅析插到PC上的usb-U盘_生命的开始阶段[软硬]--枚举过程(gliethttp)&lt;br /&gt;&lt;br /&gt;文章来源:http://glietht&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/2914303.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 12 Sep 2008 00:40:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/09/11/2914303.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/09/11/2914303.aspx</guid><dc:creator>xgb</dc:creator></item><item><title>GCC编译选项</title><link>http://blog.csdn.net/xgbing/archive/2008/09/11/2913260.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/2913260.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/2913260.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2913260</trackback:ping><description>&lt;br /&gt;在BSD爱好者上看到的 感觉挺好的 所以转来了&lt;br /&gt;作者是:剑心通明 &lt;br /&gt;1. -c 编译产生对象文件(*.obj)而不链接成可执行文件,当编译几个独立的模块,而待以后由链接程序把它们链接在一起时,就可以使用这个选项,如:&lt;br /&gt;$cc -c hello.c ===&gt; hello.o&lt;br /&gt;$cc hello.o&lt;br /&gt;2. -o 允许用户指定输出文件名,如&lt;br /&gt;$cc hello.c -o hello.o&lt;br /&gt;or&lt;br /&gt;$cc hello.c -o hello&lt;br /&gt;3. -g 指明编译程序在编译的输出中应产生调试信息.这个调试信息使源代码和变量名引用在调试程序中或者当程序异常退出后在分析core文件时可被使用.&lt;br /&gt;4. -D 允许从编译程序命令行定义宏符号&lt;br /&gt;一共有两种情况:一种是用-DMACRO,相当于在程序中使用#define MACRO,另一种是用-DMACRO=A,相当于程序中的#define MACRO A.如对下面&lt;br /&gt;这代码:&lt;br /&gt;#ifdefine DEBUG&lt;br /&gt;printf(”debug message\n”);&lt;br /&gt;#e&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/2913260.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Thu, 11 Sep 2008 22:07:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/09/11/2913260.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/09/11/2913260.aspx</guid><dc:creator>xgb</dc:creator></item><item><title>指定GCC的默认头文件路径</title><link>http://blog.csdn.net/xgbing/archive/2008/09/11/2912569.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/2912569.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/2912569.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2912569</trackback:ping><description>在交叉编译的时候我们需要用到其他的库，在config时候可以通过“-I”来指定头文件目录，但是每次都需要设置的话难免有些麻烦，找到一个简单的方法。看下文的红色部分。&lt;br /&gt;&lt;br /&gt;有大量的环境变量可供设置以影响 GCC 编译程序的方式。利用这些变量的控制也可使用合适的命令行选项。一些环境变量设置在目录名列表中。这些名字和 PATH 环境变量使用的格式相同。特殊字符 PATH_SEPARATOR （安装编译程序的时候定义）用在目录名之间。在 UNIX 系统中，分隔符是冒号，而 Windows 系统中为分号。 &lt;br /&gt;C_INCLUDE_PATH &lt;br /&gt;编译 C 程序时使用该环境变量。该环境变量指定一个或多个目录名列表，查找头文件，就好像在命令行中指定 -isystem 选项一样。会首先查找 -isystem 指定的所有目录。 &lt;br /&gt;也见 CPATH 、 CPLUS_INCLUDE_PATH 和 OBJC_INCLUDE_PATH 。 &lt;br /&gt;COMPILER_PATH &lt;br /&gt;该环境变量指定一个或多个目录名列表，如果没有指定 GCC_EXEC_PREFIX 定位子程序，编译程序会在此&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/2912569.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Thu, 11 Sep 2008 19:25:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/09/11/2912569.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/09/11/2912569.aspx</guid><dc:creator>xgb</dc:creator></item><item><title>Makefile教程</title><link>http://blog.csdn.net/xgbing/archive/2008/09/09/2905992.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/2905992.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/2905992.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2905992</trackback:ping><description>&lt;br /&gt;概述&lt;br /&gt;——&lt;br /&gt;&lt;br /&gt;什么是makefile？或许很多Winodws的程序员都不知道这个东西，因为那些Windows的IDE都为你做了这个工作，但我觉得要作一个好的和professional的程序员，makefile还是要懂。这就好像现在有这么多的HTML的编辑器，但如果你想成为一个专业人士，你还是要了解HTML的标识的含义。特别在Unix下的软件编译，你就不能不自己写makefile了，会不会写makefile，从一个侧面说明了一个人是否具备完成大型工程的能力。&lt;br /&gt;&lt;br /&gt;因为，makefile关系到了整个工程的编译规则。一个工程中的源文件不计数，其按类型、功能、模块分别放在若干个目录中，makefile定义了一系列的规则来指定，哪些文件需要先编译，哪些文件需要后编译，哪些文件需要重新编译，甚至于进行更复杂的功能操作，因为makefile就像一个Shell脚本一样，其中也可以执行操作系统的命令。&lt;br /&gt;&lt;br /&gt;makefile带来的好处就是——“自动化编译”，一旦写好，只需要一个make命令，整个工程完全自动编译，极大的提高了&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/2905992.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Wed, 10 Sep 2008 04:11:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/09/09/2905992.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/09/09/2905992.aspx</guid><dc:creator>xgb</dc:creator></item><item><title>逆波兰式</title><link>http://blog.csdn.net/xgbing/archive/2008/09/08/2898169.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/2898169.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/2898169.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2898169</trackback:ping><description>逆波兰式也叫后缀表达式(将运算符写在操作数之后) &lt;br /&gt;如：我们平时写a+b，这是中缀表达式，写成后缀表达式就是：ab+ &lt;br /&gt;(a+b)*c-(a+b)/e的后缀表达式为： &lt;br /&gt;(a+b)*c-(a+b)/e &lt;br /&gt;→((a+b)*c)((a+b)/e)- &lt;br /&gt;→((a+b)c*)((a+b)e/)- &lt;br /&gt;→(ab+c*)(ab+e/)- &lt;br /&gt;→ab+c*ab+e/- &lt;br /&gt;将一个普通的中序表达式转换为逆波兰表达式的一般算法是：&lt;br /&gt;1)首先构造一个运算符栈，此运算符在栈内遵循越往栈顶优先级越高的原则。&lt;br /&gt;(2)读入一个用中缀表示的简单算术表达式，为方便起见,设该简单算术表达式的右端多加上了优先级最低的特殊符号“#”。&lt;br /&gt;(3)从左至右扫描该算术表达式，从第一个字符开始判断，如果该字符是数字，则分析到该数字串的结束并将该数字串直接输出。&lt;br /&gt;(4)如果不是数字，该字符则是运算符，此时需比较优先关系。&lt;br /&gt;做法如下：将该字符与运算符栈顶的运算符的优先关系相比较。如果，该字符优先关系高于此运算符栈顶的运算符，则将该运算符入栈。倘若不是的话，则将栈顶的&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/2898169.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Mon, 08 Sep 2008 18:27:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/09/08/2898169.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/09/08/2898169.aspx</guid><dc:creator>xgb</dc:creator></item><item><title>状态机</title><link>http://blog.csdn.net/xgbing/archive/2008/08/07/2784127.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/2784127.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/2784127.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2784127</trackback:ping><description>&lt;br /&gt;有限状态机（Finite State Machine或者Finite State Automata)是软件领域中一种重要的工具，很多东西的模型实际上就是有限状态机。&lt;br /&gt;&lt;br /&gt;最近看了一些游戏编程AI的材料，感觉游戏中的AI，第一要说的就是有限状态机来实现精灵的AI，然后才是A*寻路，其他学术界讨论比较多的神经网络、模糊控制等问题还不是很热。&lt;br /&gt;&lt;br /&gt;FSM的实现方式：&lt;br /&gt;1） switch/case或者if/else&lt;br /&gt;这无意是最直观的方式，使用一堆条件判断，会编程的人都可以做到，对简单小巧的状态机来说最合适，但是毫无疑问，这样的方式比较原始，对庞大的状态机难以维护。&lt;br /&gt;&lt;br /&gt;2） 状态表&lt;br /&gt;维护一个二维状态表，横坐标表示当前状态，纵坐标表示输入，表中一个元素存储下一个状态和对应的操作。这一招易于维护，但是运行时间和存储空间的代价较大。&lt;br /&gt;&lt;br /&gt;3） 使用State Pattern&lt;br /&gt;使用State Pattern使得代码的维护比switch/case方式稍好，性能上也不会有很多的影响，但是也不是100％完美。不过Robert C. Mar&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/2784127.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 08 Aug 2008 03:58:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/08/07/2784127.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/08/07/2784127.aspx</guid><dc:creator>xgb</dc:creator></item><item><title>初识C语言中的opaque类型</title><link>http://blog.csdn.net/xgbing/archive/2008/08/06/2775426.aspx</link><wfw:comment>http://blog.csdn.net/xgbing/comments/2775426.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/xgbing/comments/commentRss/2775426.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2775426</trackback:ping><description>__opaque&lt;img src =&quot;http://blog.csdn.net/xgbing/aggbug/2775426.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Wed, 06 Aug 2008 19:24:00 +0800</pubDate><author>xgb</author><comments>http://blog.csdn.net/xgbing/archive/2008/08/06/2775426.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/xgbing/archive/2008/08/06/2775426.aspx</guid><dc:creator>xgb</dc:creator></item></channel></rss>