Sdílet prostřednictvím


Identifikátory (C++)

Identifikátor je posloupnost znaků, která slouží k označení jedné z následujících znaků:

  • Název objektu nebo proměnné

  • Název třídy, struktury nebo sjednocení

  • Výčtový název typu

  • Člen třídy, struktury, sjednocení nebo výčtu

  • Funkce nebo členová funkce třídy

  • typedef name

  • Label name

  • Název makra

  • Parametr makra

Následující znaky jsou povoleny jako libovolný znak identifikátoru:

_ 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

V identifikátoru jsou povoleny také určité rozsahy univerzálních názvů znaků. Název univerzálního znaku v identifikátoru nemůže určit řídicí znak nebo znak v základní zdrojové znakové sadě. Další informace naleznete v tématu Znakové sady. Tyto rozsahy čísel bodů kódu Unicode jsou povoleny jako univerzální názvy znaků pro libovolný znak v identifikátoru:

  • 00A8, 00AA, 00AD, 00AF, 00B2-00B5, 00B7-00BA, 00BC-00BE, 00C0-00D6, 00D8-00F6, 00F8-00FF, 0100-02FF, 0370-167F, 1681-180D, 180F-1DBF, 1E00-1FFF, 200B-200D, 202A-202E, 203F-2040, 2054, 2060-206F, 2070-20CF, 2100-218F, 2460-24FF, 2776-2793, 2C00-2DFF, 2E80-2FFF, 3004-3007, 3021-302F, 3031-303F, 3040-D7FF, F900-FD3D, FD40-FDCF, FDF0-FE1F, FE30-FE44, FE47-FFFD, 10000-1FFFD, 20000-2FFFD, 30000-3FFFD, 40000-4FFFD, 50000-5FFFD, 60000-6FFFD, 70000-7FFFD, 80000-8FFFD, 90000-9FFFD, A0000-AFFFD, B0000-BFFFD, C0000-CFFFD, D0000-DFFFD, E0000-EFFFD

Následující znaky jsou povoleny jako libovolný znak v identifikátoru s výjimkou prvního znaku:

0 1 2 3 4 5 6 7 8 9

Tyto rozsahy čísel bodů kódu Unicode jsou také povoleny jako univerzální názvy znaků pro libovolný znak v identifikátoru s výjimkou první:

  • 0300-036F, 1DC0-1DFF, 20D0-20FF, FE20-FE2F

Specifické pro Microsoft

Důležité jsou pouze prvních 2048 znaků identifikátorů Microsoft C++. Názvy pro uživatelem definované typy jsou "zdobeny" kompilátorem za účelem zachování informací o typu. Výsledný název, včetně informací o typu, nesmí být delší než 2048 znaků. (Viz Dekorované názvy pro další informace.) Faktory, které mohou ovlivnit délku zdobeného identifikátoru, jsou:

  • Určuje, zda identifikátor označuje objekt uživatelem definovaného typu nebo typ odvozený z uživatelem definovaného typu.

  • Určuje, zda identifikátor označuje funkci nebo typ odvozený z funkce.

  • Počet argumentů funkce.

Znak dolaru $ je platný znak identifikátoru v kompilátoru Microsoft C++ (MSVC). MSVC také umožňuje používat skutečné znaky reprezentované povolenými rozsahy univerzálních názvů znaků v identifikátorech. Pokud chcete tyto znaky použít, musíte soubor uložit pomocí znakové stránky kódování souboru, která je obsahuje. Tento příklad ukazuje, jak lze v kódu používat rozšířené znaky i univerzální názvy znaků.

// extended_identifier.cpp
// In Visual Studio, use File, Advanced Save Options to set
// the file encoding to Unicode codepage 1200
struct テスト         // Japanese 'test'
{
    void トスト() {}  // Japanese 'toast'
};

int main() {
    テスト \u30D1\u30F3;  // Japanese パン 'bread' in UCN form
    パン.トスト();        // compiler recognizes UCN or literal form
}

Rozsah znaků povolených v identifikátoru je méně omezující při kompilaci kódu C++/CLI. Identifikátory v kódu zkompilované pomocí /clr by měly následovat podle standardu ECMA-335: Common Language Infrastructure (CLI).

END Microsoft Specific

Prvním znakem identifikátoru musí být abecední znak, buď velká nebo malá písmena, nebo podtržítko ( _ ). Vzhledem k tomu, že identifikátory jazyka C++ rozlišují malá a velká písmena, fileName liší se od FileName.

Identifikátory nemohou být úplně stejné jako klíčová slova a malá a velká písmena. Identifikátory obsahující klíčová slova jsou legální. Je to například Pint právní identifikátor, i když obsahuje int, což je klíčové slovo.

Použití dvou sekvenčních znaků podtržítka ( __ ) v identifikátoru nebo jednoho úvodního podtržítka následovaného velkým písmenem je vyhrazeno pro implementace jazyka C++ ve všech oborech. Měli byste se vyhnout použití jednoho úvodního podtržítka následovaného malými písmeny pro názvy s oborem souboru kvůli možným konfliktům s aktuálním nebo budoucím vyhrazeným identifikátorem.

Viz také

Lexikální konvence