Re: [問題] 新手語法if else
看板C_and_CPP (C/C++)作者minazukimaya (水無月真夜)時間16年前 (2009/10/02 01:54)推噓2(2推 0噓 4→)留言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
10/02 02:25, 1F
→
10/02 15:03, , 2F
10/02 15:03, 2F
→
10/02 15:03, , 3F
10/02 15:03, 3F
→
10/02 15:03, , 4F
10/02 15:03, 4F
推
10/02 16:15, , 5F
10/02 16:15, 5F
→
10/03 23:08, , 6F
10/03 23:08, 6F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章