2012-06-28 22 views
14

Từ 2.13.2/3Lý do cơ bản trong việc cho phép `?` Được thoát là gì?

Các dấu nháy kép " và dấu chấm hỏi ?, có thể được biểu diễn dưới dạng mình hoặc bằng chuỗi thoát \"\? [...].

một cách đơn giản, sau đây:

char x = '\?'; //or '\"' 
char y = '?'; //or '"' 

đại diện cho nhân vật tương tự. Tại sao điều trị hai (đặc biệt là ?) khác với các ký tự khác?

Trả lời

24

\" cho tính nhất quán giữa các ký tự đơn được trích dẫn và các chuỗi ký tự được trích dẫn kép (chúng được xác định để sử dụng cùng chuỗi thoát, kết quả là \'\" có thể được sử dụng trong cả hai). Tôi đoán một chút, nhưng tôi nghĩ rằng ủy ban chỉ thấy rằng đã quá bận tâm để xác định các trình tự thoát khác nhau trong mỗi, vì không có lợi ích và cho là một thiệt hại nhẹ.

\? là để tránh trigraphs: ??= là một dấu vết, ?\?= thì không.

+2

\? thực sự là một cái gì đó để làm với trigraphs, xem http://msdn.microsoft.com/en-us/library/bt0y4awe.aspx cho một lời giải thích. –

Các vấn đề liên quan