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é
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro