2012-06-28 9 views
14

De 2.13.2/3¿Cuál es la lógica para permitir que `?` Se escape?

La cita doble " y el signo de interrogación ?, se pueden representar como ellos mismos o por las secuencias de escape \" y \? [...].

En pocas palabras, lo siguiente:

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

representan el mismo carácter. ¿Por qué tratar estos dos (especialmente ?) de manera diferente que otros personajes?

Respuesta

24

\" da consistencia entre caracteres literales entre comillas simples y literales entre comillas dobles de cadena (que están definidas para utilizar las mismas secuencias de escape, como resultado \' y \" se pueden utilizar en ambos). Estoy adivinando un poco, pero creo que el comité pensó que era demasiado molesto definir diferentes secuencias de escape en cada una de ellas, sin ningún beneficio y posiblemente con un ligero perjuicio.

\? es para evitar los trigrafos: ??= es un trigraph, ?\?= no lo es.

+2

\? de hecho, tiene algo que ver con los trigrafos, consulte http://msdn.microsoft.com/en-us/library/bt0y4awe.aspx para obtener una explicación. –

Cuestiones relacionadas