📄 subject_55778.htm
字号:
<p>
序号:55778 发表者:yiguozhen 发表日期:2003-10-13 09:02:14
<br>主题:奇怪!多加几个cout函数,也会导致死循环?~!
<br>内容:大家请看这个程序://:setjmp()&longjmp()<BR>#include<iostream><BR>#include<csetjmp><BR>using namespace std;<BR><BR>class rainbow {<BR> public:<BR> rainbow(){cout<<"rainbow()"<<endl;}<BR> ~rainbow(){ cout<<"~rainbow()"<<endl;}<BR> };<BR><BR>jmp_buf kansas;<BR><BR>void oz() {<BR> rainbow rb;<BR> for(int i=0;i<3;i++)<BR> cout<<"there's no palce like home\n";<BR> longjmp(kansas,0);<BR> }<BR><BR>int main() {<BR> if(setjmp(kansas)==0) { <BR> cout<<"tornado,witch,munchkins...\n";<BR>// cout<<"setjmp(kansas)="<<setjmp(kansas)<<endl;<BR> //cout<<"kansas="<<kansas<<endl;<BR> oz();<BR> }<BR> else {<BR> cout<<"Auntie Em!"<BR> // <<"setjmp(kansas)="<BR> // <<setjmp(kansas)<<endl<BR> // <<"kansas="<<kansas<<endl<BR> <<"I had the strangest dream..."<BR> <<endl;<BR> }<BR> }///:~<BR> 把上面cout的几个注释去掉(即:把原本注释掉的几个句子,加入程序运行),会导致死循环!<BR> 为什么???<BR> 哪位大哥能指导一下???<BR>(这个程序是看<<Thinking in C++>>第二卷,由于没有中文版,看得似懂非懂的)<BR> <BR> 如果没去掉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... <BR><BR><BR><BR><BR>2003-10-13 9:11:54
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -