字符串如"\$"
是非法的嗎?爲什麼或者爲什麼不? (海灣合作委員會和鐺給出警告,但對待它,就好像它是"$"
)\
如何後跟一個字符,與前面的反斜槓,不形成保留的轉義序列應該表現?轉義常規字符
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. NSString帶正規\轉義字符如何?
- 7. 如何將逐字字符串轉換爲常規Unicode字符
- 8. 將字符串[]轉換爲常規字符串
- 9. 追加空字符以常規字符
- 10. 將css的寬度字符串轉換爲常規數字
- 11. 如何將常規字符串轉換爲關鍵字?
- 12. 轉義字符
- 13. 轉義字符
- 14. 轉義字符,
- 15. 轉義字符
- 16. 轉義字符
- 17. 轉義字符
- 18. 將unicode轉義字符轉義爲普通字符串(沒有轉義字符)
- 19. 字符串轉義字符
- 20. 如何將Python 3字節字符串變量轉換爲常規字符串?
- 21. Bash閱讀轉義字符和正常字符
- 22. c#將具有ctrl + z的字符串轉換爲常規字符串
- 23. 如何將unicode字符串列表轉換爲常規字符串
- 24. 轉換一個被刮的unicode字符串爲常規的Python字符串
- 25. 將特殊字符轉換爲常規c#
- 26. 在MySQL中將非常規字符串轉換爲mysql datetime
- 27. 如何將Haskell System.Directory getHomeDirectory轉換爲常規字符串?
- 28. 將字符串值轉換爲AIX中的常規日期UNIX
- 29. 使用cjson庫將常規字符串轉換爲json
- 30. 轉換字符串表示的常規列表