為什麼 C 語言中可以將字元串字面量寫成"hello " "world" " ! "; 這種形式?
06-02
中間沒有任何操作符,直接就將幾個字元串連接在一起了,這為什麼是對的啊?
語法是這麼規定的。引號引起來的字元串,中間以空格分開,編譯器(預處理器)會自動幫你連成一個。
要用到一些需要折行的長字元串的時候,就特別有用。比如一個SQL語句
sql = "select aaaa " "from lalala " "where xxx ";規範要求支持。這樣方便宏處理吧,我常用宏定義字元串,然後幾個宏合併成一個。#define ROOTDIR "~/.sth/"#define CFGFILE ROOTDIR "fname"
請看c專家編程。
很簡單,這樣你就能在文本編輯器中,換行書寫一個很長的字元串了嘛。否則,你的一個很長的字元串,寫出來會怎麼樣,你需要左右滾動你的水平滾動條,不方便。看起來也比較丑。
為什麼是對的?為什麼回字有四種寫法?
這還用回答嗎?試一下不就行了?Compiler說你對的,就是對的。 Compiler 說你錯的,你就是錯的。Compiler 之所以這麼設定,估計是考慮到了程序員的使用習慣,更人性化唄。敲多行字元串,一向都是蠻累的。。
http://careferencemanual.com/,電子書網上可以找到。
這個問題有點...我認為語法問題沒有啥糾結的,就是這樣規定的,遵照即可,你可以自己查查 c 的標準或者 the c programming language 這本書,還有 googlewiki 會是你的好朋友.
這樣規定的實際作用在於:
可以將一行很長很長的字元串分成多行輸入
比如:char * msg = "hi, ""this is a loooooooooooooooooooooooooooooooooong ""message";----------
回答了才發現 「空氣」 已在 「劉中陽」 的評論中解釋了 :)推薦閱讀: