亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

return 0執行之后還會執行break嗎? 高手能幫我分析總結一下嗎?

return 0執行之后還會執行break嗎? 高手能幫我分析總結一下嗎?

C++
慕姐8265434 2022-12-14 22:18:37
例如如下的程序:LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){static HGLRC hRC; //繪制環境static HDC hDC; //設備環境switch(message){case WM_CLOSE: //窗口被關閉wglMakeCurrent(hDC,NULL); //取消選定的繪制環境wglDeleteContext(hRC); //刪除繪制環境PostQuitMessage(0); //發送WM_QUIT消息 return 0;break;default: //默認處理break;}//傳遞所有未處理的消息至默認消息處理函數DefWindowProcreturn (DefWindowProc(hwnd,message,wParam,lParam));}上面的代碼格式有點問題,是這樣的:PostQuitMessage(0); //發送WM_QUIT消息 return 0;break;記得學C++的時候case后面只用break就行了,但是這里卻同時用了return 0;
查看完整描述

3 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

錯。
這樣寫是標準合法的。

因為很多編譯器不標準,對于retun語句只是記錄返回值,然后還要接下來執行。并且函數類型的不同(pascal,std,cdecl,fast等),編譯成匯編代碼后函數出口入口的語句都有很大差別。
所以推薦的寫法就是case里面即使返回,也要break.否則有些編譯器就出錯。

你要是用bcb就知道,bcb就經常出現過這樣的錯誤,即使vc,我也遇到過調試狀態下不用break會出錯的情況。
尤其是大型工程項目,語法必須標準,否則出錯很難查找。

查看完整回答
反對 回復 2022-12-18
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

return 0;
break;
是錯誤的;

break是退出當前的循環;
return是退出當前的函數。

查看完整回答
反對 回復 2022-12-18
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

那個break可以不寫

只是為了好看:)

查看完整回答
反對 回復 2022-12-18
  • 3 回答
  • 0 關注
  • 162 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號