c 中的續行符

2021-06-22 12:23:07 字數 767 閱讀 3278

有時候我們看**會遇到類似下面的**:

#define nsd_report_error(eseverity, epackage, lfunctionality, hr, msg, bassert) \

\ }

那麼,每句後面的斜槓是什麼作用? 下面的解釋來自網際網路。

斜槓有個正式的名稱叫做續行符,在普通**行後面加不加都一樣(vc是自動判斷續行的),但是在巨集定義裡面就特別有用,因為巨集定義規定必須用一行完成:

#define somefun(x, a, b) if(x)x=a+b;else x=a-b;

這一行定義是沒有問題的,但是這樣**很不容易被理解,以後維護起來麻煩,如果寫成:

#define somefun(x, a, b)

if (x)

x = a + b;

else

x = a - b;

這樣理解是好理解了,但是編譯器會出錯,因為它會認為#define somefun(x, a, b)是完整的一行,if (x)以及後面的語句與#define somefun(x, a, b)沒有關係.這時候我們就必須使用這樣的寫法:

#define somefun(x, a, b)\

if (x)\

x = a + b;\

else\

x = a - b;

注意:最後一行不要加續行符啊.vc的預處理器在編譯之前會自動將\與換行回車去掉,這樣一來既不影響閱讀,又不影響邏輯,皆大歡喜.

關於C 的續行符

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

關於C 的續行符

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

巨集定義中的續行符

巨集定義中的續行符 巨集定義規定,巨集定義必須在一行裡完成。所以用 define定義巨集定義時,有時為了閱讀方便,就加續行符 來換行。在普通 行後面加不加都一樣 vc是自動判斷續行的 例如 define somefun x,a,b if x x a b else x a b 這一行定義是沒有問題的,...