Re: c:本來要把一行拆成兩行
> ==>發信人: tinlans.bbs@whshs.cs.nccu.edu.tw (汀), 信區: programming
> ※ 引述《jiannrong@kkcity.com.tw ( )》之銘言:
> > 請教一下,我本來要把一行拆成兩行,使用了\
> > 可是我發現在dev-c++與c-free這兩套編譯軟體,
> > 有沒有使用\都是可以的,那樣就不對了啊,
> > 這樣那一行沒有用;結束,那為什麼編輯軟體編譯時可以接受呢?
> C 本來就沒有嚴格要求這種東西,
> 空白和換行都只不過是分隔字元,
> 而 ; 是 simple statement 的結尾,
> 前面有幾個空白字元都沒差。
> 在定義多行 macro 的時候可能會用到,
> 不過它本身其實並不算 C language 的一部份:
> #define XXXXXXX \
> 第二行 \
> 第三行 \
> 最後一行
> C 的 string literal 也有可能用到:
> "第一行\
> 第二行\
> 最後一行"
> 其它地方是用不到的。
"\" 在 unix 系統裡是相當於 ascii 字串的 escape code , 它的意
思是接在 "\" 後面的 control character 字元代表的 control
function 將被跳過, 或者說將被特別解釋, \CR 在編輯器裡就是在
CR(carrier return)之後接著的下一行字元是接續在 \CR 之前, 看
似兩行, 卻是連成一整橫行之意.
這是因為老UNIX是用 tty (teletype, 打字電報機) 當終端機, 而
tty 原先是通訊連線用的, ascii 碼就是後來又配合設計給終端連
線傳送字符用的. 但 "\" 則是在UNIX系統慣用, 是可見的符號, 並
不是印不出來的 ESC character. 優點是能顯示列印, 讓人看得見,
缺點是每經過一次處理再轉存或轉送時, 就會從字串裡取掉 \ . 例
如 unix style 的 shell 就會把 command line 裡的 "\\" 變成
"\" .
由於 \ 是特定符號, 如果要將含 "\" 字元的字串傳送給下一個程
式就必須再塞入 "\" 成為 "\\".
很不幸, big5 中文碼用到這個字元, 如 "許" , "功" , 而 MS 是
拿 "\" 當 path 裡的分隔符號, 所以涉及這三種(UNIX, MS-Window,
BIG5 中文) 混用的需特別留意.
--
◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234