Tokens und Zeichensätze
Der Text eines C++-Programms besteht aus Token und Leerzeichen. Ein Token ist das kleinste Element eines C++-Programms, das für den Compiler von Bedeutung ist. Der C++-Parser erkennt diese Arten von Token:
- Schlüsselwörter
- Bezeichner
- Numerische, boolesche und Zeigerliterale
- Zeichenfolgen- und Zeichenliterale
- Benutzerdefinierte Literale
- Operatoren
- Markierungszeichen
Token werden in der Regel durch Leerzeichen getrennt, die eine oder mehrere sein können:
- Leerstellen
- Horizontale oder vertikale Tabstopps
- Zeilenumbrüche
- Formularfeeds
- Kommentare
Einfacher Quellzeichensatz
Der C++-Standard gibt einen einfachen Quellzeichensatz an, der in Quelldateien verwendet werden kann. Es können zusätzliche Zeichen mithilfe eines universellen Zeichennamensangegeben werden, um Zeichen außerhalb dieses Satzes darzustellen. Die MSVC-Implementierung ermöglicht zusätzliche Zeichen. Der einfache Quellzeichensatz besteht aus 96 Zeichen, die in Quelldateien verwendet werden können. Dieser Satz umfasst das Leerzeichen, den horizontalen Tabstopp, den vertikalen Tabstopp, die Steuerzeichen für Seitenvorschub und Zeilenwechsel sowie diese Gruppe von Grafikzeichen:
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
_ { } [ ] # ( ) < > % : ; . ? * + - / ^ & | ~ ! = , \ " '
Microsoft-spezifisch
MSVC enthält das $
Zeichen als Mitglied des grundlegenden Quellzeichensatzes. MSVC ermöglicht außerdem, basierend auf der Dateicodierung, einen zusätzlichen Satz von Zeichen in Quelldateien zu verwenden. Standardmäßig speichert Visual Studio die Quelldateien mithilfe der Standardcodepage. Wenn Quelldateien mithilfe einer gebietsschemaspezifischen Codepage oder einer Unicode-Codepage gespeichert werden, können Sie mithilfe von MSVC eines der Zeichen dieser Codeseite in Ihrem Quellcode verwenden, mit Ausnahme der Steuerelementcodes, die im grundlegenden Quellcodesatz nicht explizit zulässig sind. Beispielsweise können Sie japanische Zeichen in Kommentaren, Bezeichnern oder Zeichenfolgenliteralen einfügen, wenn Sie die Datei mit einer japanischen Codepage speichern. MSVC lässt keine Zeichensequenzen zu, die nicht in gültige Multibyte-Zeichen oder Unicode-Codepunkte übersetzt werden können. In Abhängigkeit von den Compileroptionen werden möglicherweise nicht alle zulässigen Zeichen in Bezeichnern angezeigt. Weitere Informationen finden Sie unter Bezeichner.
Ende Microsoft-spezifisch
Universelle Zeichennamen
Da C++-Programme mehr Zeichen als die im einfachen Quellzeichensatz angegebenen Zeichen verwenden können, können Sie diese Zeichen mithilfe universeller Zeichennamenauf portierbare Weise angeben. Ein universeller Zeichennamen besteht aus einer Folge von Zeichen, die einen Unicode-Codepunkt darstellen. Diese nehmen zwei Formen an. Verwenden Sie \UNNNNNNNN
, um einen Unicode-Codepunkt der Form „U+NNNNNNNN“ darzustellen, wobei „NNNNNNNN“ die achtstellige hexadezimale Codepunktnummer angibt. Verwenden Sie das vierstellige \uNNNN
, um einen Unicode-Codepunkt in der Form U+0000NNNN darzustellen.
Universelle Zeichennamen können in Bezeichnern und Zeichenfolgen sowie in Zeichenliteralen verwendet werden. Ein universeller Zeichennamen kann nicht dazu verwendet werden, um einen Ersatzcodepunkt im Bereich 0xD800-0xDFFF darzustellen. Verwenden Sie stattdessen den gewünschten Codepunkt. Der Compiler generiert automatisch alle erforderlichen Ersatzzeichen. Zusätzliche Einschränkungen gelten für die universellen Zeichennamen, die in Bezeichnern verwendet werden können. Weitere Informationen finden Sie unter Identifiers und String and Character Literals.
Microsoft-spezifisch
Der Microsoft C++-Compiler behandelt ein Zeichen in universeller Zeichennamenform und literaler Form austauschbar. Sie können z. B. einen Bezeichner in Form eines universellen Zeichennamens deklarieren und ihn dann in Literalform verwenden:
auto \u30AD = 42; // \u30AD is 'キ'
if (キ == 42) return true; // \u30AD and キ are the same to the compiler
Das Format von Sonderzeichen in der Windows-Zwischenablage ist von den Gebietsschemaeinstellungen der Anwendung abhängig. Das Ausschneiden und Einfügen dieser Zeichen in Ihren Code aus einer anderen Anwendung kann zu unerwarteten Zeichencodierungen führen. Dies kann in Ihrem Code ohne ersichtlichen Grund zu Analysefehlern führen. Es wird empfohlen, dass Sie für Ihre Quelldateicodierung eine Unicode-Codepage festlegen, bevor Sie Sonderzeichen einfügen. Außerdem wird empfohlen, dass Sie einen Eingabemethoden-Editor oder eine App zur Zeichenzuordnung verwenden, um Sonderzeichen zu generieren.
Ende Microsoft-spezifisch
Ausführungszeichensätze
Die Ausführungszeichensätze stellen die Zeichen und Zeichenfolgen dar, die in einem kompilierten Programm angezeigt werden können. Diese Zeichensätze bestehen aus allen in einer Quelldatei zulässigen Zeichen sowie den Steuerzeichen, die Warnung, Rücktaste, Wagenrücklauf und das NULL-Zeichen darstellen. Der Ausführungszeichensatz weist eine gebietsschemaspezifische Darstellung auf.