字符串如"\$"
是非法的嗎?爲什麼或者爲什麼不? (海灣合作委員會和鐺給出警告,但對待它,就好像它是"$"
)\
如何後跟一個字符,與前面的反斜槓,不形成保留的轉義序列應該表現?轉義常規字符
Q
轉義常規字符
0
A
回答
2
它在C11草案的n1570草案(非規範性)中很明確。的6.4.4.4字符常數的段落定義逸出序列:
轉義序列:
- 簡單轉義序列
- 八進制轉義序列
- 十六進制逃逸 - 序列
- 通用字符名稱
簡單轉義序列:中
- \」 \一個」 \?\
- \ A \ B \˚F\ n \ r \噸符\ v
八進制轉義序列:
- \八進制位
- \ octal-八進制數字
- \八進制,八進制,八進制數字
十六進制轉義序列:
- \ X十六進制數字
- 十六進制轉義序列十六進制數字
另一個字符的所有其他序列以下一個\
這裏沒有定義,所以現行標準沒有規定行爲(未定義)
注曰:
77)...... 如果任何其它字符如下反斜線, 結果不是令牌和診斷需要。請參閱「將來的語言指導」(6.11.4)。
而且6.11.4說:作爲轉義序列被保留給未來的標準化
6.11.4字符轉義序列
小寫字母。其他 字符可用於擴展名。
通常,編譯器發出所需的警告,但忽略多餘的\
。它對於非小寫字母是完全符合的,因爲它可以是本地擴展名,但它可能會在未來版本的C語言中打破小寫字母,因爲它明確表示爲保留功能
2
從this escape sequence reference:
ISO C要求的診斷,如果反斜槓後跟此處未列出的任何字符。
所以需要編譯器打印關於它的消息。
在快速閱讀C11規範(INCITS + ISO + IEC + 9899-2011 [2012],參考上述鏈接參考文獻後),我沒有發現行爲。雖然可以在其他地方指定它,但我對此表示懷疑,所以未指定轉義序列的行爲沒有具體說明。
相關問題
- 1. C++字符串文字轉義規則
- 2. C:將常量字符串轉換爲常規字符串
- 3. 將常規字符串轉換爲常規地圖
- 4. 轉換Array對Java字符串/常規
- 5. Notepad ++ TextFX轉義爲正則表達式的常規字符串
- 6. 如何將逐字字符串轉換爲常規Unicode字符
- 7. 將字符串[]轉換爲常規字符串
- 8. 追加空字符以常規字符
- 9. 將css的寬度字符串轉換爲常規數字
- 10. 轉義字符
- 11. 轉義字符
- 12. 轉義字符,
- 13. 轉換一個被刮的unicode字符串爲常規的Python字符串
- 14. c#將具有ctrl + z的字符串轉換爲常規字符串
- 15. 如何將unicode字符串列表轉換爲常規字符串
- 16. 將字符串值轉換爲AIX中的常規日期UNIX
- 17. 如何將HTML字符引用(ף)轉換爲常規UTF-8?
- 18. 如何將Haskell System.Directory getHomeDirectory轉換爲常規字符串?
- 19. PHP轉義字符
- 20. SOQL轉義字符
- 21. Dust.js轉義字符
- 22. .NET轉義字符?
- 23. 字符串轉義
- 24. XML轉義字符
- 25. XSLT轉義字符
- 26. 轉義HTML字符
- 27. HTML轉義字符
- 28. 製表符轉義字符?
- 29. 字符串文字/轉義
- 30. OpenCSV寫入未轉義轉義字符