<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C/C++</title><link>http://blog.vckbase.com/eyesonyhm/category/444.html</link><description>在这里我想和您一起分享我在C/C++旅途中的每一个脚印。</description><managingEditor>遇君阁</managingEditor><dc:language>af</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>遇君阁</dc:creator><title>Declaration and Defination</title><link>http://blog.vckbase.com/eyesonyhm/articles/33135.html</link><pubDate>Thu, 03 Apr 2008 06:56:00 GMT</pubDate><guid>http://blog.vckbase.com/eyesonyhm/articles/33135.html</guid><wfw:comment>http://blog.vckbase.com/eyesonyhm/comments/33135.html</wfw:comment><comments>http://blog.vckbase.com/eyesonyhm/articles/33135.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/eyesonyhm/comments/commentRss/33135.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/eyesonyhm/services/trackbacks/33135.html</trackback:ping><description>&lt;P&gt;I summarize some case&amp;nbsp; which is declaration in C++, and other is defination as bellow&lt;/P&gt;
&lt;P&gt;Declaration:&lt;BR&gt;int foo(int,int); //function declaration&lt;/P&gt;
&lt;P&gt;typedef short INT16; //typedef declaration &lt;/P&gt;
&lt;P&gt;extern int var; //external declaration&lt;/P&gt;
&lt;P&gt;class bar; // class declaration, you also use struct,union,enum&lt;/P&gt;
&lt;P&gt;friend test; // friend declaration&lt;/P&gt;
&lt;P&gt;using std::cout; // namespace declaration&lt;/P&gt;
&lt;P&gt;Defination:&lt;BR&gt;int y;&lt;/P&gt;
&lt;P&gt;class foo {...};&lt;/P&gt;
&lt;P&gt;struct bar {...};&lt;/P&gt;
&lt;P&gt;foo* p;&lt;/P&gt;
&lt;P&gt;static int i;&lt;/P&gt;
&lt;P&gt;enum Color{RED,GREEN,BLUE};&lt;/P&gt;
&lt;P&gt;const double PI = 3.1415;&lt;/P&gt;
&lt;P&gt;union Rep{...};&lt;/P&gt;
&lt;P&gt;void test(int p) {};&lt;/P&gt;
&lt;P&gt;foo a;&lt;/P&gt;
&lt;P&gt;bar b;&lt;/P&gt;
&lt;P&gt;Declaration and Defination in a Class:&lt;BR&gt;// A.h header file&lt;BR&gt;// class A is a defination.&lt;BR&gt;class A&lt;BR&gt;{&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int a;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // a is a defination&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static int b;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // b is a declaration, you will difine it outside this class&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int getValue();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // method getValue is a declaration., you will difine it outside this class &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // method getValue1 is a defination,&amp;nbsp;it is an inline function.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int getValue1()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return a;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;};&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/eyesonyhm/aggbug/33135.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>遇君阁</dc:creator><title>using声明与using 指示符</title><link>http://blog.vckbase.com/eyesonyhm/articles/33134.html</link><pubDate>Thu, 03 Apr 2008 06:38:00 GMT</pubDate><guid>http://blog.vckbase.com/eyesonyhm/articles/33134.html</guid><wfw:comment>http://blog.vckbase.com/eyesonyhm/comments/33134.html</wfw:comment><comments>http://blog.vckbase.com/eyesonyhm/articles/33134.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/eyesonyhm/comments/commentRss/33134.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/eyesonyhm/services/trackbacks/33134.html</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-list: l1 level1 lfo2; tab-stops: list 21.0pt; mso-layout-grid-align: none"&gt;&lt;STRONG&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#216;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;声明&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;声明是以关键字&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;开头后面是名字空间成员名&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;, &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;但是一次只能引入一个名字空间成员&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;。使用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;声明的直接效果是允许程序员访问命名空间中的名字&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;,&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;而不需要加前缀&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;namespace_name::&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;。同时&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;声明同其他声明的行为一样：它有一个域，它引入的名字从该声明开始直到其所在的域结束都是可见的。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;声明可以出现在全局域和任意名字空间中，同时它也可以出现在局部域中。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;格式：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using namespace::name; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;Using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;声明的一个经常用法是使被子类覆盖的父类中的方法在子类中可见，如：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;class Base {&lt;BR&gt;private:&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;int x;&lt;BR&gt;public:&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;virtual void mf1() = 0;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;virtual void mf1(int);&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;virtual void mf2();&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;void mf3();&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;void mf3(double);&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;...&lt;BR&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;class Derived: public Base {&lt;BR&gt;public:&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// make all things in Base named mf1 and mf3 &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 11pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;// visible (and public) in Derived&amp;#8217;s scope&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using Base::mf1; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;using Base::mf3; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;virtual void mf1();&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;void mf3();&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;void mf4();&lt;BR&gt;...&lt;BR&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt; mso-layout-grid-align: none"&gt;&lt;STRONG&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#216;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;指示符&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;指示符：是使用整个名字空间，其直接作用是使该名词空间下的所名字可见。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;格式：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using namespace namespace_name&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;指示符语句可以加在程序文件的几乎任何地方，包括文件开头（&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;#include&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;语句之前）、函数内部。不过用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;指定的名字空间作用域（生命周期）受&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;语句所在位置的生命周期约束。如，函数内部使用&amp;#8220;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using namespace myspacename;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&amp;#8221;则&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt; myspacename&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;仅在该函数内部可见。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;可以用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;语句指定多个名字空间，使得多个名字空间同时可见。但这增加了名字污染的可能性，而且只有在使用各名字空间相同成员时由多个&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;指示符引起的二义性错误才能被检测到，这将给程序的检测、扩展、移植带来很大的隐患。因此，应该尽量使用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;声明而不是滥用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;指示符。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;附：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 24pt; mso-pagination: none; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt; mso-layout-grid-align: none"&gt;&lt;STRONG&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#216;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;Using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;声明与一般声明的区别&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;它们之间的区别在于，&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;Using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;声明只引入了一个名称，而一般声明在引入一个名称的同时，还告诉我们这个&lt;BR&gt;&lt;BR&gt;名称的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;signature&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;是什么样子的。所以这里又有必要说明一下如何声明一个命名空间里的对象或者函数：&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;&lt;BR&gt;// a.cpp&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;namespace example&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// class declaration in namespace&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;class A;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// function declaration in namespace&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;int foo();&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;FONT face=Arial&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: black; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/eyesonyhm/aggbug/33134.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>遇君阁</dc:creator><title>External Linkage V.S Internal Linkage</title><link>http://blog.vckbase.com/eyesonyhm/articles/32852.html</link><pubDate>Thu, 06 Mar 2008 03:22:00 GMT</pubDate><guid>http://blog.vckbase.com/eyesonyhm/articles/32852.html</guid><wfw:comment>http://blog.vckbase.com/eyesonyhm/comments/32852.html</wfw:comment><comments>http://blog.vckbase.com/eyesonyhm/articles/32852.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/eyesonyhm/comments/commentRss/32852.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/eyesonyhm/services/trackbacks/32852.html</trackback:ping><description>&lt;A name=compilation_units_sec&gt;&lt;STRONG&gt;Compilation Units&lt;/STRONG&gt;&lt;/A&gt; 
&lt;P&gt;A &lt;EM&gt;compilation unit&lt;/EM&gt; is C/C++ source code that is compiled and treated as one logical unit. When C/C++ files is compiling, the preprocessor will include the header file recursively. Next the &lt;EM&gt;compilation unit&lt;/EM&gt; will be compiled to object file(.o or .obj). Programs composed of more than one compilation unit can be separately compiled, and later linked to produce the executable program.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Internal Linkage&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;If a&amp;nbsp;signature is local&amp;nbsp;in its compilation unit, and it can't confilict with the same&amp;nbsp;signature in other compilation units&amp;nbsp;at link phase. We call this&amp;nbsp;signature has internal linkage.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;External Linkage&lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;If &amp;nbsp;a&amp;nbsp;signature will be used to&amp;nbsp;search by other compilation units. We call this&amp;nbsp;signature&amp;nbsp;has external linkage. In other words, if we define&amp;nbsp;this&amp;nbsp;signature in different compilation unit, the compiler will give us an error like: multiple name.&lt;BR&gt;&lt;BR&gt;First, I must say all declaration in C++ is neither Internal linkage nor External Linkage, we called it No Linkage. Next I summarized some items to recognise whether&amp;nbsp;a&amp;nbsp;signature is external&amp;nbsp;linkage or not:&lt;BR&gt;1. In a class, the signature&amp;nbsp;of&amp;nbsp;member method defination, the&amp;nbsp;signature of&amp;nbsp;static member method defination&amp;nbsp;and the signature of static member var defination&amp;nbsp;has external linkage.&lt;BR&gt;2. In a namespace(include global namespace), the&amp;nbsp;signature of non-static function defination, the signature&amp;nbsp;of&amp;nbsp;non-static friend function defination&amp;nbsp;and the signature of non-static variable defination&amp;nbsp;&amp;nbsp;has external linkage.&lt;BR&gt;We can use an example to prove it:&lt;BR&gt;// A.h&lt;BR&gt;class&amp;nbsp;A&lt;BR&gt;{&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int foo();&lt;BR&gt;}&lt;BR&gt;//&amp;nbsp;AA.cpp&lt;BR&gt;#include &amp;#8220;A.h&amp;#8220;&lt;BR&gt;int A::foo()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&amp;nbsp;&lt;BR&gt;}&lt;BR&gt;//AAA.cpp&lt;BR&gt;#include &amp;#8220;A.h&amp;#8220;&lt;BR&gt;int A::foo()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 1;&amp;nbsp;&lt;BR&gt;}&lt;BR&gt;If you compile this code, &amp;nbsp;you will get the&amp;#8220;A::foo already defined in TestEnum.obj&amp;#8220; link error.&amp;nbsp;Because the signature of member function defination has external linkage.If we modify the AAA.cpp file to:&lt;BR&gt;// AAA.cpp&lt;BR&gt;// no code, only include AAA.h&lt;BR&gt;#include &amp;#8220;A.h&amp;#8220;&lt;BR&gt;There is no error.&amp;nbsp;We can see the signature of class defination has internal linkage.&lt;BR&gt;&lt;BR&gt;&amp;nbsp;I think other case is internal&amp;nbsp;linkage&amp;nbsp;except items that I summarized above, like&amp;nbsp; the signature of class defination, the signature of union/enum defination&amp;nbsp;etc. If you are a&amp;nbsp;chariness person, you must find all signature with external linkage&amp;nbsp;which&amp;nbsp;can not&amp;nbsp;be&amp;nbsp;located in header file, only in cpp file. Reversely,&amp;nbsp;all signature with internal linkage can be located in header file.&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/eyesonyhm/aggbug/32852.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>遇君阁</dc:creator><title>头文件不能不说的事</title><link>http://blog.vckbase.com/eyesonyhm/articles/32850.html</link><pubDate>Wed, 05 Mar 2008 05:46:00 GMT</pubDate><guid>http://blog.vckbase.com/eyesonyhm/articles/32850.html</guid><wfw:comment>http://blog.vckbase.com/eyesonyhm/comments/32850.html</wfw:comment><comments>http://blog.vckbase.com/eyesonyhm/articles/32850.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/eyesonyhm/comments/commentRss/32850.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/eyesonyhm/services/trackbacks/32850.html</trackback:ping><description>&lt;STRONG&gt;头文件一般包含：&lt;/STRONG&gt; &lt;BR&gt;类型定义 &lt;BR&gt;模板声明 &lt;BR&gt;模板定义 &lt;BR&gt;函数声明&amp;nbsp;&amp;nbsp; &lt;BR&gt;内联函数定义 &lt;BR&gt;数据声明 &lt;BR&gt;常量定义 &lt;BR&gt;枚举 &lt;BR&gt;包含指令 &lt;BR&gt;宏定义 &lt;BR&gt;注释 &lt;BR&gt;条件编译指令&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&amp;#8220;&amp;#8220;和&amp;lt;&amp;gt;搜索路径的区别--引自MSDN&lt;BR&gt;&amp;nbsp; ""&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; This&amp;nbsp;&amp;nbsp; form&amp;nbsp;&amp;nbsp; instructs&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; preprocessor&amp;nbsp;&amp;nbsp; to&amp;nbsp;&amp;nbsp; look&amp;nbsp;&amp;nbsp; for&amp;nbsp;&amp;nbsp; include&amp;nbsp;&amp;nbsp; files&amp;nbsp;&amp;nbsp; in&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; same&amp;nbsp;&amp;nbsp; directory&amp;nbsp;&amp;nbsp; of&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; file&amp;nbsp;&amp;nbsp; that&amp;nbsp;&amp;nbsp; contains&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; #include&amp;nbsp;&amp;nbsp; statement,&amp;nbsp;&amp;nbsp; and&amp;nbsp;&amp;nbsp; then&amp;nbsp;&amp;nbsp; in&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; directories&amp;nbsp;&amp;nbsp; of&amp;nbsp;&amp;nbsp; any&amp;nbsp;&amp;nbsp; files&amp;nbsp;&amp;nbsp; that&amp;nbsp;&amp;nbsp; include&amp;nbsp;&amp;nbsp; (#include)&amp;nbsp;&amp;nbsp; that&amp;nbsp;&amp;nbsp; file.&amp;nbsp;&amp;nbsp; The&amp;nbsp;&amp;nbsp; preprocessor&amp;nbsp;&amp;nbsp; then&amp;nbsp;&amp;nbsp; searches&amp;nbsp;&amp;nbsp; along&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; path&amp;nbsp;&amp;nbsp; specified&amp;nbsp;&amp;nbsp; by&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; /I&amp;nbsp;&amp;nbsp; compiler&amp;nbsp;&amp;nbsp; option,&amp;nbsp;&amp;nbsp; then&amp;nbsp;&amp;nbsp; along&amp;nbsp;&amp;nbsp; paths&amp;nbsp;&amp;nbsp; specified&amp;nbsp;&amp;nbsp; by&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; INCLUDE&amp;nbsp;&amp;nbsp; environment&amp;nbsp;&amp;nbsp; variable.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;lt;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; This&amp;nbsp;&amp;nbsp; form&amp;nbsp;&amp;nbsp; instructs&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; preprocessor&amp;nbsp;&amp;nbsp; to&amp;nbsp;&amp;nbsp; search&amp;nbsp;&amp;nbsp; for&amp;nbsp;&amp;nbsp; include&amp;nbsp;&amp;nbsp; files&amp;nbsp;&amp;nbsp; first&amp;nbsp;&amp;nbsp; along&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; path&amp;nbsp;&amp;nbsp; specified&amp;nbsp;&amp;nbsp; by&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; /I&amp;nbsp;&amp;nbsp; compiler&amp;nbsp;&amp;nbsp; option,&amp;nbsp;&amp;nbsp; then,&amp;nbsp;&amp;nbsp; when&amp;nbsp;&amp;nbsp; compiling&amp;nbsp;&amp;nbsp; from&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; command&amp;nbsp;&amp;nbsp; line,&amp;nbsp;&amp;nbsp; along&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; path&amp;nbsp;&amp;nbsp; specified&amp;nbsp;&amp;nbsp; by&amp;nbsp;&amp;nbsp; the&amp;nbsp;&amp;nbsp; INCLUDE&amp;nbsp;&amp;nbsp; environment&amp;nbsp;&amp;nbsp; variable.&lt;img src ="http://blog.vckbase.com/eyesonyhm/aggbug/32850.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>游游的家</dc:creator><title>C&amp;C++问题搜集</title><link>http://blog.vckbase.com/eyesonyhm/articles/24078.html</link><pubDate>Thu, 18 Jan 2007 06:57:00 GMT</pubDate><guid>http://blog.vckbase.com/eyesonyhm/articles/24078.html</guid><wfw:comment>http://blog.vckbase.com/eyesonyhm/comments/24078.html</wfw:comment><comments>http://blog.vckbase.com/eyesonyhm/articles/24078.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/eyesonyhm/comments/commentRss/24078.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/eyesonyhm/services/trackbacks/24078.html</trackback:ping><description>&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;SPAN class=code&gt;1、控制台输入结束的时候按下键盘上的Enter键，是往输入流中输入了几个字符？&lt;BR&gt;是不是一个CR 一个LF， 共2个字节？&lt;BR&gt;那么为什么读的时候只能读到LF，读不到CR？&lt;/SPAN&gt; &lt;BR&gt;&lt;SPAN class=code&gt;&lt;FONT color=#ff0000&gt;答：因为控制台io是以文本方式，而不是二进制方式打开的，所以其会将输入的\r\n转化为\n，会将输出的\n转化为\r\n&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;SPAN class=code&gt;&lt;FONT face="Courier New"&gt;1、类中inline成员函数的定义为什么要放在头文件中？&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#ff0000&gt;答：因为调用者需要就地展开代码，如果找不到实现如何展开？所以内联函数一般放在头文件中。&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;选自周星星的blog&lt;BR&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/P&gt;
&lt;P&gt;int main( void )&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE* fp = fopen( "D:\\test.txt", "r+" ); // 文件内容：12345&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char c;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread( &amp;amp;c, 1, 1, fp ); // 函数返回1,c为'1' --- 也就是一切正确&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fseek(fp,0,SEEK_CUR); --- [&lt;A href="http://www.vckbase.com/bbs/userinfo.asp?id=jzhang" target=_blank&gt;&lt;FONT color=#000080&gt;jzhang&lt;/FONT&gt;&lt;/A&gt;]和[&lt;A href="http://www.programfan.com/club/member.asp?userid=134720" target=_blank&gt;&lt;FONT color=#000080&gt;argentmoon&lt;/FONT&gt;&lt;/A&gt;]说加上这一句就好了&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite( "a", 1, 1, fp ); // 函数返回1 --- 也就是一切正确&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose( fp ); // 函数返回0 --- 也就是一切正确，然而文件内容仍然为 12345 而没有变为 1a345&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;答：&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;ouput&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;directly&amp;nbsp;followed&amp;nbsp;by&amp;nbsp;input&amp;nbsp;without&amp;nbsp;an&amp;nbsp;intervening&amp;nbsp;fflush,&amp;nbsp;fseek,&amp;nbsp;fsetpos,&amp;nbsp;or&amp;nbsp;rewind. &lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Input&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;directly&amp;nbsp;followed&amp;nbsp;by&amp;nbsp;output&amp;nbsp;without&amp;nbsp;an&amp;nbsp;intervening&amp;nbsp;fseek,&amp;nbsp;fsetpos,&amp;nbsp;or&amp;nbsp;rewind,&amp;nbsp;or&amp;nbsp;an&amp;nbsp;input&amp;nbsp;operation&amp;nbsp;that&amp;nbsp;encounters&amp;nbsp;an&amp;nbsp;end&amp;nbsp;of&amp;nbsp;file. &lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/eyesonyhm/aggbug/24078.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>遇君阁</dc:creator><title>常用代码搜集</title><link>http://blog.vckbase.com/eyesonyhm/articles/23500.html</link><pubDate>Wed, 13 Dec 2006 08:38:00 GMT</pubDate><guid>http://blog.vckbase.com/eyesonyhm/articles/23500.html</guid><wfw:comment>http://blog.vckbase.com/eyesonyhm/comments/23500.html</wfw:comment><comments>http://blog.vckbase.com/eyesonyhm/articles/23500.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/eyesonyhm/comments/commentRss/23500.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/eyesonyhm/services/trackbacks/23500.html</trackback:ping><description>&lt;P&gt;我在这里主要是搜集有用的代码，第一可以己用，第二也可以给同志们一个找代码的地方。&lt;BR&gt;&lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;STRONG&gt;控制小数位数（摘自周星星的论坛答复和blog，自己稍微修改了一下）：&lt;BR&gt;方法1：&lt;BR&gt;&lt;/STRONG&gt;&lt;FONT face=Arial&gt;#include &amp;lt;iostream&amp;gt;&lt;BR&gt;#include &amp;lt;strstream&amp;gt;&lt;BR&gt;#include &amp;lt;iomanip&amp;gt;&lt;BR&gt;#include &amp;lt;cmath&amp;gt;&lt;BR&gt;#include &amp;lt;string&amp;gt;&lt;BR&gt;using namespace std;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;void foo( double f, size_t n )&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;ostrstream ostr;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; double intpart;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; modf( f, &amp;amp;intpart );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; double lenf = log10( intpart );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; size_t len = (size_t)ceil( lenf );&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;ostr &amp;lt;&amp;lt; setprecision(n+len) &amp;lt;&amp;lt; f &amp;lt;&amp;lt; '\0';&lt;BR&gt;&amp;nbsp;string numStr;&lt;BR&gt;&amp;nbsp;numStr = ostr.str();&lt;BR&gt;&amp;nbsp;cout &amp;lt;&amp;lt; numStr &amp;lt;&amp;lt;endl;&lt;BR&gt;&amp;nbsp;cout &amp;lt;&amp;lt; setprecision(n+len) &amp;lt;&amp;lt; f &amp;lt;&amp;lt; endl;&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;int main( void )&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo( 123.456, 2 );&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;方法2 ：&lt;BR&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;按有效位输出是 setprecision，按小数位数输出也是setprecision，但到底是谁取决于fixed。&lt;BR&gt;cout &amp;lt;&amp;lt; resetiosflags(ios::fixed) &amp;lt;&amp;lt; setprecision(n) &amp;lt;&amp;lt; float-point-number; 是按n位有效数输出&lt;BR&gt;cout &amp;lt;&amp;lt; setiosflags(ios::fixed) &amp;lt;&amp;lt; setprecision(n) &amp;lt;&amp;lt; float-point-number; 是按n位小数输出&lt;BR&gt;&lt;BR&gt;测试代码：&lt;BR&gt;#include &amp;lt;iostream&amp;gt;&lt;BR&gt;#include &amp;lt;iomanip&amp;gt;&lt;BR&gt;using namespace std;&lt;/P&gt;
&lt;P&gt;int main( void )&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; const double value = 12.3456789;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl; // 默认以6精度，所以输出为 12.3457&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; setprecision(4) &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl; // 改成4精度，所以输出为12.35&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; setprecision(8) &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl; // 改成8精度，所以输出为12.345679&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; fixed &amp;lt;&amp;lt; setprecision(4) &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl; // 加了fixed意味着是固定点方式显示，所以这里的精度指的是小数位，输出为12.3457&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl; // fixed和setprecision的作用还在，依然显示12.3457&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout.unsetf( ios::fixed ); // 去掉了fixed，所以精度恢复成整个数值的有效位数，显示为12.35&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout.precision( 6 ); // 恢复成原来的样子，输出为12.3457&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;STRONG&gt;cin输入时,如何忽略回车换行符:&lt;BR&gt;&lt;/STRONG&gt;if(peek() == '\r'){ignore(1);}&lt;BR&gt;&lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;STRONG&gt;如何赋值字符串的其中一段:&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string a="abcde";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string b(a.begin()+1, a.begin()+3);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string c;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c = a.substr(1,2);&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;STRONG&gt;定义二维数组:&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp; 1.&amp;nbsp;A &amp;nbsp; (*ga)[n] &amp;nbsp; = &amp;nbsp; new &amp;nbsp; A[m][n]; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; delete &amp;nbsp; []ga; &amp;nbsp; &lt;BR&gt;&amp;nbsp; 缺点：n必须是已知&lt;BR&gt;&amp;nbsp; 优点：调用直观，连续储存，程序简洁(经过测试，析构函数能正确调用) &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; 2. A** &amp;nbsp; ga &amp;nbsp; = &amp;nbsp; new &amp;nbsp; A*[m]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for(int &amp;nbsp; i &amp;nbsp; = &amp;nbsp; 0; &amp;nbsp; i &amp;nbsp; &amp;lt; &amp;nbsp; m; &amp;nbsp; i++) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ga[i] &amp;nbsp; = &amp;nbsp; new &amp;nbsp; A[n]; &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; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; for(int &amp;nbsp; i &amp;nbsp; = &amp;nbsp; 0; &amp;nbsp; i &amp;nbsp; &amp;lt; &amp;nbsp; m; &amp;nbsp; i++) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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; delete &amp;nbsp; []ga[i]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete &amp;nbsp; []ga; &amp;nbsp; &lt;BR&gt;&amp;nbsp; 缺点：非连续储存，程序烦琐，ga为A**类型&lt;BR&gt;&amp;nbsp; 优点：调用直观，n可以不是已知 &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; 3.&amp;nbsp;A* &amp;nbsp; ga &amp;nbsp; = &amp;nbsp; new &amp;nbsp; A[m*n]; &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; &lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; delete &amp;nbsp; []ga; &amp;nbsp; &lt;BR&gt;&amp;nbsp; 缺点：调用不够直观&lt;BR&gt;&amp;nbsp; 优点：连续储存，n可以不是已知 &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; 4.&amp;nbsp;vector&amp;lt;vector&amp;lt;A&amp;gt; &amp;nbsp; &amp;gt; &amp;nbsp; ga; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ga.resize(m); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //这三行可用可不用 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for(int &amp;nbsp; i &amp;nbsp; = &amp;nbsp; 1; &amp;nbsp; i &amp;nbsp; &amp;lt; &amp;nbsp; n; &amp;nbsp; i++) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp; &amp;nbsp; &amp;nbsp; &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; ga[i].resize(n); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;BR&gt;&amp;nbsp; 缺点：非连续储存，调试不够方便，编译速度下降，程序膨胀(实际速度差别不大) &amp;nbsp; &lt;BR&gt;&amp;nbsp; 优点：调用直观，自动析构与释放内存，可以调用stl相关函数，动态增长 &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; 5.&amp;nbsp;vector&amp;lt;A&amp;gt; &amp;nbsp; ga; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ga.resize(m*n); &amp;nbsp; &lt;BR&gt;&amp;nbsp; 方法3,4的结合 &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; 6. &amp;nbsp; 2的改进版(Penrose提供，在此感谢) &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A** &amp;nbsp; ga &amp;nbsp; = &amp;nbsp; new &amp;nbsp; A*[m]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ga[0] &amp;nbsp; = &amp;nbsp; new &amp;nbsp; A[m*n]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for(int &amp;nbsp; i &amp;nbsp; = &amp;nbsp; 1; &amp;nbsp; i &amp;nbsp; &amp;lt; &amp;nbsp; m; &amp;nbsp; i++) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ga[i] &amp;nbsp; = &amp;nbsp; ga[i-1]+n; &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; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete &amp;nbsp; [] &amp;nbsp; ga[0]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete &amp;nbsp; [] &amp;nbsp; ga; &amp;nbsp; &lt;BR&gt;&amp;nbsp; 缺点：程序烦琐，ga为A**类型优点：连续储存，调用直观，n可以不是已知附：1,2,3,6还有对应的malloc-free版本个人推荐1和4,2可以用4来代替，3,5调用太烦琐，毕竟源程序是拿来看的不是拿来运行的下面是一些错误和没成功的版本1. &amp;nbsp; A* &amp;nbsp; ga &amp;nbsp; = &amp;nbsp; new &amp;nbsp; A[m][n]; &amp;nbsp; &amp;nbsp; 必然错误2. &amp;nbsp; vector&amp;lt;A[n]&amp;gt; &amp;nbsp; ga;&amp;nbsp;&amp;nbsp;ga.resize(m);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT face=Arial&gt;C++ InstanceOf Version:&lt;/STRONG&gt;&lt;BR&gt;void foo( A&amp;amp; pSome)&lt;BR&gt;{&lt;BR&gt;// Here I have a pointer to an A&lt;BR&gt;// but it could also be a B or a C object&lt;BR&gt;&lt;BR&gt;if( dynamic_cast&amp;lt; B* &amp;gt;( pSome ) != 0 ) {&lt;BR&gt;// it is a B object&lt;BR&gt;B* = dynamic_cast&amp;lt; B* &amp;gt;( pSome );&lt;BR&gt;// do something with it&lt;BR&gt;}&lt;BR&gt;else if( dynamic_cast&amp;lt; C* &amp;gt;( pSome ) != 0 ) {&lt;BR&gt;// it is a C object&lt;BR&gt;C* = dynamic_cast&amp;lt; C* &amp;gt;( pSome );&lt;BR&gt;// do something with it&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;STRONG&gt;计算程序执行时间:&lt;BR&gt;Method1:&lt;BR&gt;&lt;/STRONG&gt;#include "time.h"&lt;BR&gt;int main( void )&lt;BR&gt;{&lt;BR&gt;clock_t start, finish;&lt;BR&gt;double usetime;&lt;BR&gt;start = clock();&lt;BR&gt;// Here is your tested code&lt;BR&gt;finish = clock();&lt;BR&gt;usetime= (double)(finish - start) / CLOCKS_PER_SEC;&lt;BR&gt;printf( "The second elapsed is: \n", usetime);&lt;BR&gt;}&lt;BR&gt;&lt;STRONG&gt;Method2:&lt;/STRONG&gt;&lt;BR&gt;// Return &lt;FONT size=2&gt;Clock Cycle Time&lt;BR&gt;&lt;/FONT&gt;// It is only used for Pentium &amp;nbsp; IV&lt;BR&gt;inline&amp;nbsp;&amp;nbsp; unsigned&amp;nbsp;&amp;nbsp; __int64&amp;nbsp;&amp;nbsp; GetCycleCount(void)&amp;nbsp;&amp;nbsp; &lt;BR&gt;{&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _asm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _emit&amp;nbsp;&amp;nbsp; 0x0F&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _asm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _emit&amp;nbsp;&amp;nbsp; 0x31&amp;nbsp;&amp;nbsp; &lt;BR&gt;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;STRONG&gt;字符串替换函数.&lt;/STRONG&gt;&lt;BR&gt;// 能替换所有的要替换的字符串,被替换的字符串和替换的字符串不一定一样长.&lt;BR&gt;// pInput - 输入字符串.&lt;BR&gt;// pOutput - 输出字符串, 要保证足够的空间可以存储替换后的字符串.&lt;BR&gt;// pSrc - 要被替换的子字符串, 比如%user%&lt;BR&gt;// pDst - 要替换成的字符串, 比如user1&lt;BR&gt;// 注意:以上的字符串均要以'\0'结尾.&lt;BR&gt;//&lt;BR&gt;void Substitute(char *pInput, char *pOutput, char *pSrc, char *pDst)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char&amp;nbsp;&amp;nbsp;&amp;nbsp; *pi, *po, *p;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nSrcLen, nDstLen, nLen;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 指向输入字符串的游动指针.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pi = pInput;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 指向输出字符串的游动指针.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; po = pOutput;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 计算被替换串和替换串的长度.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nSrcLen = strlen(pSrc);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nDstLen = strlen(pDst);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 查找pi指向字符串中第一次出现替换串的位置,并返回指针(找不到则返回null).&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = strstr(pi, pSrc);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(p)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; while(p)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&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;&amp;nbsp; nLen = (int)(p - pi);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp; memcpy(po, pi, nLen);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memcpy(po + nLen, pDst, nDstLen);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp; pi = p + nSrcLen;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp; po = po + nLen + nDstLen;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp; p = strstr(pi, pSrc);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; // 复制剩余字符串.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strcpy(po, pi);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; strcpy(po, pi);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;
&lt;TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" background=http://www.vckbase.com/image/dotline.gif border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;关于中文的输入输出.&lt;/STRONG&gt;&lt;BR&gt;wcout.imbue(locale("chs"));&lt;BR&gt;&amp;nbsp;wchar_t test[] = L"测试Test";&lt;BR&gt;&amp;nbsp;wcout&amp;lt;&amp;lt;test&amp;lt;&amp;lt;endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;// '我' =〉GB2312&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char&amp;nbsp;&amp;nbsp; string1[]&amp;nbsp; =&amp;nbsp;&amp;nbsp; "THIS 我 A STRING";&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%s\n",string1); &lt;BR&gt;&amp;nbsp;setlocale(LC_ALL, "chs");&lt;BR&gt;&amp;nbsp;wchar_t c = L'你';&lt;BR&gt;&amp;nbsp;printf("%C\n", c);&lt;BR&gt;&amp;nbsp;// '我' =〉Unicode&lt;BR&gt;&amp;nbsp;wchar_t string2[]&amp;nbsp; =&amp;nbsp;&amp;nbsp; L"THIS 我 A STRING";&lt;BR&gt;&amp;nbsp;wprintf(L"%s\n",string2);&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/eyesonyhm/aggbug/23500.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>游游的家</dc:creator><title>如何使用GCC和VS生成编译不同阶段的产物</title><link>http://blog.vckbase.com/eyesonyhm/articles/23498.html</link><pubDate>Wed, 13 Dec 2006 08:27:00 GMT</pubDate><guid>http://blog.vckbase.com/eyesonyhm/articles/23498.html</guid><wfw:comment>http://blog.vckbase.com/eyesonyhm/comments/23498.html</wfw:comment><comments>http://blog.vckbase.com/eyesonyhm/articles/23498.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/eyesonyhm/comments/commentRss/23498.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/eyesonyhm/services/trackbacks/23498.html</trackback:ping><description>&lt;P class=MsoNormal style="BACKGROUND: #f7fbfe; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=justify&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;个人以为一个程序员最起码要对编译器的编译过程要有一个基本的了解，这样做的好处便可以从不同编译阶段的角度来考虑程序的正确性、效率和程序出错时的错误分析，所以我想把这个话题再说一说，希望对大家有用。&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;程序的编译过程基本上需要经历预处理、编译、汇编、连接这四个阶段，如下图所示：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #f7fbfe; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;&lt;A href="http://developer.51cto.com/files/uploadimg/20060926/1714230.jpg" target=_blank&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: black; TEXT-DECORATION: none; text-underline: none"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"&gt;&lt;/v:path&gt;&lt;o:lock v:ext="edit" aspectratio="t"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;IMG height=311 src="/images/vckbase_com/eyesonyhm/process.JPG" width=162 border=0&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BACKGROUND: #f7fbfe; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;然后我想用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;GCC，VS针对这几个不同阶段生成的产物来简单说明一下这几个过程。并且在一般我们使用的IDE里，如VC,DEV C++，一般把前三个阶段作为一个阶段来处理。所以我们了解一下如何产生编译中间产物的过程也是必要的。&lt;/P&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="BACKGROUND: #f7fbfe; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;在预处理阶段，输入的是&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;C&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;语言的源文件，通常为&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;*.c&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;。它们通常带有&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;.h&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;之类头文件的包含文件。这个阶段主要处理源文件中的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;#ifdef&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt; #include&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;#define&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;命令。该阶段GCC和VS都会生成一个中间文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;*.i&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;，但实际工作中通常不用专门生成这种文件，因为基本上用不到；若非要生成这种文件不可，可以利用下面的示例GCC命令和VS要加的编译选项如下所示：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV align=center&gt;GCC&lt;/DIV&gt;
&lt;DIV align=center&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 300pt; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt; mso-cellspacing: 0cm" cellSpacing=0 cellPadding=0 width=400 border=1&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 1.5pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 1.5pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 1.5pt; BORDER-BOTTOM: #d4d0c8"&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=ES style="mso-bidi-font-size: 10.0pt; mso-ansi-language: ES"&gt;GCC -E&amp;nbsp; test.c -o test.i&lt;/SPAN&gt;&lt;SPAN lang=ES style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ansi-language: ES"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV align=center&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;VS&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV align=center&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 300pt; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt; mso-cellspacing: 0cm" cellSpacing=0 cellPadding=0 width=400 border=1&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 1.5pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 1.5pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 1.5pt; BORDER-BOTTOM: #d4d0c8"&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=ES style="mso-bidi-font-size: 10.0pt; mso-ansi-language: ES"&gt;PROJECT|SETTINGS|C/C++|Project|Options中，加上/P&lt;/SPAN&gt;&lt;SPAN lang=ES style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ansi-language: ES"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV align=justify&gt;在编译阶段，输入的是中间文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;*.i&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;，编译后生成汇编语言文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;*.s，VS是生成*.asm文件&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;。这个阶段对应的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;GCC&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;命令和VS要加的编译选项如下所示：&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV align=center&gt;GCC&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV align=center&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 300pt; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt; mso-cellspacing: 0cm" cellSpacing=0 cellPadding=0 width=400 border=1&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 1.5pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 1.5pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 1.5pt; BORDER-BOTTOM: #d4d0c8"&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.0pt"&gt;GCC -S test.i -o test.s &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;DIV align=center&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;VS&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV align=center&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 300pt; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt; mso-cellspacing: 0cm" cellSpacing=0 cellPadding=0 width=400 border=1&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 1.5pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 1.5pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 1.5pt; BORDER-BOTTOM: #d4d0c8"&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=ES style="mso-bidi-font-size: 10.0pt; mso-ansi-language: ES"&gt;PROJECT|SETTINGS|C/C++|Project|Options中，加上/FA&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="BACKGROUND: #f7fbfe; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;在汇编阶段，将输入的汇编文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;*.s或*.asm&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;转换成机器语言&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;*.o或者*.obj&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;。这个阶段对应的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;GCC&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;命令如下所示：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV align=center&gt;GCC&lt;BR&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 300pt; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt; mso-cellspacing: 0cm" cellSpacing=0 cellPadding=0 width=400 border=1&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 1.5pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 1.5pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 1.5pt; BORDER-BOTTOM: #d4d0c8"&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=ES style="mso-bidi-font-size: 10.0pt; mso-ansi-language: ES"&gt;GCC -c test.s -o test.o &lt;/SPAN&gt;&lt;SPAN lang=ES style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-ansi-language: ES"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="BACKGROUND: #f7fbfe; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;最后，在连接阶段将输入的机器代码文件&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.0pt"&gt;*.s&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;（与其它的机器代码文件和库文件）汇集成一个可执行的二进制代码文件。这一步骤，可以利用下面的示例命令完成：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV align=center&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 300pt; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt; mso-cellspacing: 0cm" cellSpacing=0 cellPadding=0 width=400 border=1&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 1.5pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 1.5pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 1.5pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 1.5pt; BORDER-BOTTOM: #d4d0c8"&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.0pt"&gt;GCC test.o -o test &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="BACKGROUND: #f7fbfe; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"&gt;&lt;FONT size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/eyesonyhm/aggbug/23498.html" width = "1" height = "1" /&gt;</description></item></channel></rss>