看板Programming
标 题Re: c:本来要把一行拆成两行
发信站中央大学松涛风情资讯站 (Thu Aug 16 20:58:04 2007)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ncu!news.csie.ncu!Evergreen
> ==>发信人: [email protected] (汀), 信区: programming
> ※ 引述《[email protected] ( )》之铭言:
> > 请教一下,我本来要把一行拆成两行,使用了\
> > 可是我发现在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