[抱怨] else 的問題

看板PLT (程式語言與理論)作者 (bx)時間15年前 (2009/06/11 09:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
在處理 C-style language 的 source 時,發現 else 是一個很奇怪的東西。 一般只要把 #, {}, [], (), "", '' 處理好了, 要分辨語句 (包括算式、宣告、定義) 就可以這樣看: 1. 在 {}, [], (), "", '' 之外出現 ';' 表示語句結束。 就算是比較複雜的 do...while, class, struct, union, typedef 對此也都成立。 2. 第一點的例外為: a. 出現 (...) 之後接著出現 {...} 就不需分號即表示語句結束。 switch, while, for 和沒有 else 的 if 都是如此。 b. 一開頭就出現 {...} c. if...else {...} 和 inline asm 的狀況。 除去 inline asm 不看,也就是這個 else, 使得 C-style languages 的 source 無法簡化成以符號為基準來處理, 需要看 keyword 決定語句,一碰到 if...else 就要特別來做。 或者狠一點要求 block 後面一律加分號才行就天下太平了,只是這樣就不是 C-style language 了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.40.157.103
文章代碼(AID): #1AC5iyPz (PLT)
文章代碼(AID): #1AC5iyPz (PLT)