Juegos de tokens y caracteres

El texto de un programa de C++ consta de tokens y espacios en blanco. Un token es el elemento mínimo de un programa de C++ que es significativo para el compilador. El analizador de C++ reconoce estos tipos de tokens:

Los tokens suelen estar separados por espacios en blanco, que pueden ser uno o varios:

  • Espacios en blanco
  • Tabulaciones horizontales o verticales
  • Nuevas líneas
  • Fuentes de formularios
  • Comentarios

Juego básico de caracteres de código fuente

El estándar de C++ especifica un juego de caracteres de origen básico que se puede usar en los archivos de código fuente. Para representar caracteres ajenos a este conjunto, los caracteres adicionales se pueden especificar mediante el uso de un nombre de carácter universal. La implementación de MSVC permite caracteres adicionales. El juego de caracteres de origen básico consta de 96 caracteres que pueden usarse en archivos de código fuente. Este conjunto incluye el carácter de espacio, tabulación horizontal, tabulación vertical, avance de página y caracteres de control de nueva línea,además del siguiente conjunto de caracteres gráficos:

a b c d e f g h i j k l m n o p q r s t u v w x y z

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9

_ { } [ ] # ( ) < > % : ; . ? * + - / ^ & | ~ ! = , \ " '

Específicos de Microsoft

MSVC incluye el carácter $ como miembro del juego de caracteres de origen básico. MSVC también permite usar un juego de caracteres en archivos de código fuente, con base en la codificación del archivo. De forma predeterminada, Visual Studio almacena archivos de código fuente mediante la página de códigos predeterminada. Al guardar los archivos de código fuente mediante una página de códigos específicos de la configuración regional o una página de códigos Unicode, MSVC le permite usar cualquiera de los caracteres de dicha página de códigos en el código fuente, excepto los códigos de control no permitidos explícitamente en el juego de caracteres de origen básico. Por ejemplo, se pueden colocar caracteres de japonés en comentarios, identificadores o literales de cadena, si se guarda el archivo a través de una página de códigos de japonés. MSVC no permite las secuencias de caracteres que no pueden trasladarse a caracteres multibyte o puntos de código Unicode válidos. Según las opciones del compilador, puede que no todos los caracteres permitidos se muestren en los identificadores. Para obtener más información, consulte Identificadores.

FIN de Específicos de Microsoft

nombres de carácter universal

Dado que los programas de C++ pueden usar muchos más caracteres que los especificados en el juego básico de caracteres de código fuente, es posible especificar estos caracteres de una manera portátil mediante nombres de carácter universal. Un nombre de carácter universal consta de una secuencia de caracteres que representan un punto de código Unicode. Estos tienen dos formatos. Use \UNNNNNNNN para representar un punto de código Unicode con el formato U+NNNNNNNN, donde NNNNNNNN es el número de punto de código hexadecimal de ocho dígitos. Use \uNNNN de cuatro dígitos para representar un punto de código Unicode con el formato U+0000NNNN.

Los nombres de carácter universal pueden usarse tanto en identificadores como en literales de cadena y carácter. Un nombre de carácter universal no puede usarse para representar un punto de código suplente en el rango de 0xD800 a 0xDFFF. En su lugar, se debe usar el punto de código deseado. El compilador genera automáticamente los suplentes necesarios. Se aplican restricciones adicionales a los nombres de carácter universal que se pueden usar en los identificadores. Para obtener más información, vea Identifiers y String and Character Literals.

Específicos de Microsoft

El compilador de Microsoft C++ trata indistintamente un carácter con el formato de nombre de carácter universal y con formato de literal. Por ejemplo, se puede declarar un identificador con formato de nombre de carácter universal y usarlo en el formato de literal:

auto \u30AD = 42; // \u30AD is 'キ'
if (キ == 42) return true; // \u30AD and キ are the same to the compiler

El formato de caracteres extendidos en el Portapapeles de Windows es específico de la configuración regional de la aplicación. Cortar y pegar estos caracteres en el código desde otra aplicación podría introducir codificaciones de caracteres inesperadas. Esto puede provocar errores de análisis sin causa visible en el código. Se recomienda establecer la codificación del archivo de código fuente en una página de códigos Unicode antes de pegar los caracteres extendidos. También se recomienda usar un IME o la aplicación Mapa de caracteres para generar caracteres extendidos.

FIN de Específicos de Microsoft

Juegos de caracteres de ejecución

Los juegos de caracteres de ejecución representan los caracteres y las cadenas que pueden aparecer en un programa compilado. Estos juegos de caracteres constan de todos los caracteres permitidos en un archivo de código fuente, así como de los caracteres de control que representan alertas, retrocesos, retorno de carro y el carácter nulo. El juego de caracteres de ejecución tiene una representación específica de la configuración regional.