⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_55778.htm

📁 vc
💻 HTM
字号:
<p>
序号:55778 发表者:yiguozhen 发表日期:2003-10-13 09:02:14
<br>主题:奇怪!多加几个cout函数,也会导致死循环?~!
<br>内容:大家请看这个程序://:setjmp()&amp;longjmp()<BR>#include&lt;iostream&gt;<BR>#include&lt;csetjmp&gt;<BR>using namespace std;<BR><BR>class rainbow {<BR> public:<BR> rainbow(){cout&lt;&lt;&#34;rainbow()&#34;&lt;&lt;endl;}<BR> ~rainbow(){ cout&lt;&lt;&#34;~rainbow()&#34;&lt;&lt;endl;}<BR> };<BR><BR>jmp_buf kansas;<BR><BR>void oz() {<BR> rainbow rb;<BR> for(int i=0;i&lt;3;i++)<BR>&nbsp;&nbsp;cout&lt;&lt;&#34;there's no palce like home\n&#34;;<BR> longjmp(kansas,0);<BR> }<BR><BR>int main() {<BR> if(setjmp(kansas)==0) {&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; cout&lt;&lt;&#34;tornado,witch,munchkins...\n&#34;;<BR>//&nbsp;&nbsp;cout&lt;&lt;&#34;setjmp(kansas)=&#34;&lt;&lt;setjmp(kansas)&lt;&lt;endl;<BR>&nbsp;&nbsp;//cout&lt;&lt;&#34;kansas=&#34;&lt;&lt;kansas&lt;&lt;endl;<BR>&nbsp;&nbsp;oz();<BR>&nbsp;&nbsp;}<BR> else {<BR>&nbsp;&nbsp;cout&lt;&lt;&#34;Auntie Em!&#34;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&lt;&lt;&#34;setjmp(kansas)=&#34;<BR>&nbsp;&nbsp;&nbsp;&nbsp; // &lt;&lt;setjmp(kansas)&lt;&lt;endl<BR>&nbsp;&nbsp;&nbsp;&nbsp; // &lt;&lt;&#34;kansas=&#34;&lt;&lt;kansas&lt;&lt;endl<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&#34;I had the strangest dream...&#34;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR> }///:~<BR>&nbsp;&nbsp;把上面cout的几个注释去掉(即:把原本注释掉的几个句子,加入程序运行),会导致死循环!<BR>&nbsp;&nbsp;为什么???<BR>&nbsp;&nbsp;哪位大哥能指导一下???<BR>(这个程序是看&lt;&lt;Thinking in C++&gt;&gt;第二卷,由于没有中文版,看得似懂非懂的)<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;如果没去掉cout的几个注释,运行结果是:<BR>tornado,witch,munchkins...<BR>rainbow()<BR>there's no palce like home<BR>there's no palce like home<BR>there's no palce like home<BR>Auntie Em!I had the strangest dream...&nbsp;&nbsp;<BR><BR><BR><BR><BR>2003-10-13 9:11:54

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -