關於C 的續行符

2021-09-05 20:24:58 字數 986 閱讀 4581

眾所周知,如果你需要在**中定義乙個較長的字串,首先我會想把它們放在多行上(因為放在一行上會不便於閱讀),這樣**即美觀又便於閱讀;這就需要續行符了。

在c/c++中續行符可以用 \ 或二字"括起來的字串來表示,如:

char* str1 = "string one\

two";

或char* str2 = "string one"

"two";

在vb中續行符可以用_來表示,如:(vb語法有些忘了,不過續行符_是沒錯的)

dim str1 as string

str1="string one"_

"two"

可是到了c#,找遍msdn也沒有找到有關續行符的語法(如果有高手知道還請指點),不過在c#可是用「通用」的字串「續行符」,如:

string str1="string one"+

"two";

很明顯這只是普通的字串拼接,跟本不是什麼續行符,不過c#的編譯器是很智慧型的,將上面的**編譯後生成的il指令轉換為源**後是這樣的:

string str1="string onetwo";

也就是說c#編譯器自動將它們連線,並視乙個字串常量了。

再看下面這個例子:

string str1="three";

string str2="string "+"one "+str1;

你會想到編譯後生成的源**是什麼嗎?

沒錯,上面的**編譯後生成的il指令轉換為源**就是:

string str1="three";

string str2="string one "+str1;

最後c#還有一種方法可以定義超長字串,但這種方法會將回車換行符等視有效字串;如:

string mailto:str1=@%22string one

two";

上面的**編譯後生成的il指令轉換為源**就是:

string str1="string one\r\ntwo";

關於C 的續行符

眾所周知,如果你需要在 中定義乙個較長的字串,首先我會想把它們放在多行上 因為放在一行上會不便於閱讀 這樣 即美觀又便於閱讀 這就需要續行符了。在c c 中續行符可以用 或二字 括起來的字串來表示,如 char str1 string one two 或char str2 string one tw...

c 中的續行符

有時候我們看 會遇到類似下面的 define nsd report error eseverity,epackage,lfunctionality,hr,msg,bassert 那麼,每句後面的斜槓是什麼作用?下面的解釋來自網際網路。斜槓有個正式的名稱叫做續行符,在普通 行後面加不加都一樣 vc是自...

C 的反斜槓「 」 續行符

系統規定,巨集定義的時候,代替的語句很長或者是個語句塊甚至函式的時候,就需要用到這個反斜槓了!看下面 這玩意兒有個正式的名稱叫做續行符,在普通 行後面加不加都一樣 vc是自動判斷續行的 但是在巨集定義裡面就特別有用,因為巨集定義規定必須用一行完成 define somefun x,a,b if x ...