逸出序列
字元組合由一個反斜線 (\),後面加上一個字母或數字所組成,稱為「逸出序列(escape sequences)」。若要表示新行的字元,單引號或某些其他代表字元常數的字元,您必須使用逸出序列。 因此逸出序列視為單一字元,必且是有效的字元常數。
逸出序列在終端和印表機通常會用來指定動作(例如歸位字元 (Carriage Return) 和索引標籤移動)。 它們也可以用來提供通常具有特殊意義的非列印字元和字元之常值表示,例如雙引號 (")。 下表列出 ANSI 逸出序列,以及它們所表示的意義。
請注意反斜線後的問號(\?)代表常值問號,以避免字元序列被錯誤解譯為三併詞(trigraph)處理。 如需三併詞的詳細資訊,請參閱三併詞。
逸出序列
逸出序列 |
表示 |
---|---|
\a |
鈴聲 (警示) |
\b |
退格鍵 |
\f |
換頁字元 |
\n |
新行 |
\r |
歸位字元 |
\t |
水平 Tab |
\v |
垂直 Tab |
\' |
單引號 |
\" |
雙引號 |
\\ |
反斜線 |
\? |
常值問號 |
\ooo |
八進位標記法的 ASCII 字元 |
\xhh |
十六進位標記法的 ASCII 字元 |
\xhhhh |
十六進位標記法的 Unicode 字元,如果這個逸出序列用於寬字元常數或 Unicode 字串常值。 例如,WCHAR f = L'\x4e00' 或 WCHAR b[] = L"The Chinese character for one is \x4e00"。 |
Microsoft 專有的
如果反斜線後接著的字元未出現在上表中,編譯器會將這些未定義的字元視為字元本身。 例如, \c 會被視為 c。
END Microsoft 專有
逸出序列可用來傳送 nongraphic 控制字元至顯示裝置。 例如, 在終端機或印表機上,ESC 字元 (\033) 通常用來做為控制項命令的第一個字元。 有些逸出序列適用於特定裝置。 例如,垂直索引標籤和換頁字元逸出序列 (\v 和 \f) 不會影響螢幕輸出,但它們可執行適當的印表機操作。
您也可以使用反斜線 (\) 做為接續字元。 當新行字元 (等同於按下 RETURN 鍵) 後面緊接著一個反斜線,編譯器會忽略反斜線和新行字元,並且將下一行視為上一行的一部分。 在前置處理器定義中,這樣較單行好用。 例如:
#define assert(exp) \
( (exp) ? (void) 0:_assert( #exp, __FILE__, __LINE__ ) )