I creado un nuevo proyecto con el segmento de código siguiente:¿Metacaracidad desconocida en C/C++ cadena literal?
char* strange = "(Strange??)";
cout << strange << endl;
resultante en la salida siguiente:
(Strange]
Así traducir '??)' -> ']'
Depuración muestra que mi cadena de caracteres * literal es en realidad ese valor y no es una traducción de secuencia. Obviamente, esta no es una secuencia de metacaracteres que haya visto alguna vez. ¿Algún tipo de secuencia de caracteres Unicode o amplia quizás? No obstante, no lo creo ... Intenté deshabilitar todas las configuraciones de proyectos relacionadas en vano.
¿Alguien tiene una explicación?
- de búsqueda: 'signo de interrogación, signo de interrogación, llave de cierre' c C++ cadena literal
Esta pregunta podría ayudarlo: http://stackoverflow.com/questions/1234582/purpose-of-trigraph-sequences-in-c –
gracias ... Agregué la búsqueda en la parte inferior de mi publicación con la esperanza que las búsquedas futuras coincidirían con la construcción del doble signo de interrogación. Esta decisión de diseño (habilitándola por defecto) está en una palabra: 'insano'. Deje los trigraphs en el OS/UI que digo. – Marius
Trigraphs se agregaron específicamente para los casos donde el OS/UI era insuficiente. Recuerde que C data de una época en que la UI era una conexión de 9600 baudios y ASCII estaba lejos de ser universal. – caf