Sdílet prostřednictvím


Tokeny a znakové sady

Text programu C++ se skládá z tokenů a prázdných znaků. Token je nejmenší prvek programu C++, který je smysluplný pro kompilátor. Analyzátor jazyka C++ rozpozná tyto druhy tokenů:

Tokeny jsou obvykle oddělené prázdným znakem, což může být jedna nebo více:

  • Prázdné hodnoty
  • Vodorovné nebo svislé tabulátory
  • Nové řádky
  • Informační kanály formulářů
  • Komentáře

Základní zdrojová znaková sada

Standardní jazyk C++ určuje základní zdrojovou znakovou sadu , kterou lze použít ve zdrojových souborech. Chcete-li znázorňovat znaky mimo tuto sadu, lze další znaky zadat pomocí univerzálního názvu znaku. Implementace MSVC umožňuje další znaky. Základní zdrojová znaková sada se skládá z 96 znaků, které lze použít ve zdrojových souborech. Tato sada obsahuje znak mezery, vodorovnou tabulátoru, svislou tabulátoru, informační kanál formuláře a řídicí znaky nového řádku a tuto sadu grafických znaků:

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

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

Specifické pro Microsoft

MSVC obsahuje $ znak jako člen základní zdrojové znakové sady. MSVC také umožňuje použít další sadu znaků ve zdrojových souborech na základě kódování souboru. Visual Studio ve výchozím nastavení ukládá zdrojové soubory pomocí výchozí znakové stránky. Pokud jsou zdrojové soubory uloženy pomocí znakové stránky specifické pro národní prostředí nebo znakové stránky Unicode, MSVC umožňuje použít libovolný z znaků této znakové stránky ve zdrojovém kódu, s výjimkou kódů ovládacích prvků, které nejsou explicitně povoleny v základní zdrojové znakové sadě. Pokud například soubor uložíte pomocí japonské znakové stránky, můžete do komentářů, identifikátorů nebo řetězcových literálů vložit japonské znaky. MSVC neumožňuje sekvence znaků, které nelze přeložit na platné vícebajtové znaky nebo kódové body Unicode. V závislosti na možnostech kompilátoru se v identifikátorech nemusí zobrazovat všechny povolené znaky. Další informace najdete v článku Identifikátory.

END Microsoft Specific

Názvy univerzálních znaků

Vzhledem k tomu, že programy jazyka C++ mohou používat mnohem více znaků než ty, které jsou uvedeny v základní zdrojové znakové sadě, můžete tyto znaky určit přenosným způsobem pomocí univerzálních názvů znaků. Název univerzálního znaku se skládá z posloupnosti znaků, které představují bod kódu Unicode. Ty mají dvě formy. Slouží \UNNNNNNNN k reprezentaci bodu kódu Unicode ve tvaru U+NNNNNNNN, kde NNNNNNNN je osmimístné šestnáctkové číslo bodu kódu. Pomocí čtyřmístné číslice \uNNNN představuje bod kódu Unicode ve tvaru U+0000NNNN.

Univerzální názvy znaků lze použít v identifikátorech a v řetězcových a znakových literálech. Název univerzálního znaku nelze použít k reprezentaci náhradního bodu kódu v rozsahu 0xD800-0xDFFF. Místo toho použijte požadovaný bod kódu; kompilátor automaticky vygeneruje všechny požadované náhrady. Další omezení se vztahují na názvy univerzálních znaků, které lze použít v identifikátorech. Další informace naleznete v tématu Identifikátory a řetězcové a znakové literály.

Specifické pro Microsoft

Kompilátor jazyka Microsoft C++ považuje znak ve formě univerzálního názvu znaku a literál zaměnitelně. Můžete například deklarovat identifikátor pomocí formuláře názvu univerzálního znaku a použít ho ve formě literálu:

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

Formát rozšířených znaků ve schránce systému Windows je specifický pro nastavení národního prostředí aplikace. Vyjmutí a vložení těchto znaků do kódu z jiné aplikace může představovat neočekávané kódování znaků. Výsledkem může být analýza chyb bez viditelné příčiny v kódu. Před vložením rozšířených znaků doporučujeme nastavit kódování zdrojového souboru na znakovou stránku Unicode. K vygenerování rozšířených znaků také doporučujeme použít editor IME nebo aplikaci Mapa znaků.

END Microsoft Specific

Spouštěcí znakové sady

Znakové sady spuštění představují znaky a řetězce, které se mohou objevit v kompilovaném programu. Tyto znakové sady se skládají ze všech znaků povolených ve zdrojovém souboru a také řídicích znaků, které představují výstrahu, backspace, návrat na začátek řádku a znak null. Znaková sada spouštění má reprezentaci specifickou pro národní prostředí.