Re: [問題] 新手語法if else

看板C_and_CPP (C/C++)作者 (水無月真夜)時間16年前 (2009/10/02 01:54), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《QQ29 (我愛阿蓉)》之銘言: : 今天trace code : if : {......} : else<=====中斷點設這 : { : if() : { ....} : }<==================跳到這 : 中斷以後 按下f10 發現他就跳到上面那鍵頭了 : 想一想 : 難道 : else{ if() {}} : 其實跟 else if()是相等的?????? : 只是多了一個{}scope不同??? @@ 不相等啊 if( ) { else { if( ) { } //some statements here } 和 if( ) { else if( ) { } // where can you put 'some statements' ? 上述的例子說明在High level language的語意上這兩者是不相等的 回到你前面的問題 為什麼中斷點這樣跳 和 1. Compiler的最佳化 2. debug tool在ASM code和C code間的關連對應方法 3. 該平臺的指令集 三者都有關係.. 如果你想知道為什麼那樣跳 可以把Assembly視窗打開看看compiler究竟把哪些assembly關連到哪一行code.. 也許在某些平臺某些Compiler的某些狀況下 if() {} else { if() {} } 和 if() {} else if { } 編出來的code是完全相等的 (其實應該絕大多數的Compier和平臺都會是這樣) 但是那和高階語言本身的「語意」是兩回事 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.83.47 ※ 編輯: minazukimaya 來自: 118.170.83.47 (10/02 01:55)

10/02 02:25, , 1F
else if( ) {/*some*/} else {/*some*/}
10/02 02:25, 1F

10/02 15:03, , 2F
樓上的..那些some statement是if判斷過了之後也會執
10/02 15:03, 2F

10/02 15:03, , 3F
行的喔@@ 你寫成這樣 後面那段是if判斷過了就不會執
10/02 15:03, 3F

10/02 15:03, , 4F
行的
10/02 15:03, 4F

10/02 16:15, , 5F
else{if{}_}=else{if{_}else{_}}=else if{_}else{_} @@?
10/02 16:15, 5F

10/03 23:08, , 6F
第一個等號錯了
10/03 23:08, 6F
文章代碼(AID): #1AnEpVIz (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
文章代碼(AID): #1AnEpVIz (C_and_CPP)