Tokeny i zestawy znaków
Tekst programu C++ składa się z tokenów i białych znaków. Token jest najmniejszym elementem programu C++, który ma znaczenie dla kompilatora. Analizator języka C++ rozpoznaje tego rodzaju tokeny:
- Słowa kluczowe
- Identyfikatory
- Literały numeryczne, wartości logicznych i wskaźników
- Literały ciągów i znakowe
- Literały definiowane przez użytkownika
- Operatory
- Znaki interpunkcyjne
Tokeny są zwykle oddzielone białym znakiem, co może być co najmniej jednym:
- Wartości puste
- Karty poziome lub pionowe
- Nowe wiersze
- Źródła danych formularzy
- Komentarze
Podstawowy zestaw znaków źródłowych
Standard C++ określa podstawowy zestaw znaków źródłowych, który może być używany w plikach źródłowych. Aby reprezentować znaki poza tym zestawem, można określić dodatkowe znaki przy użyciu uniwersalnej nazwy znaków. Implementacja MSVC umożliwia stosowanie dodatkowych znaków. Podstawowy źródłowy zestaw znaków składa się z 96 znaków, które mogą być używane w plikach źródłowych. Ten zestaw zawiera znak spacji, kartę poziomą, kartę pionową, kanał informacyjny formularza i znaki kontrolek nowego wiersza oraz ten zestaw znaków graficznych:
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
_ { } [ ] # ( ) < > % : ; . ? * + - / ^ & | ~ ! = , \ " '
Specyficzne dla firmy Microsoft
MSVC zawiera $
znak jako element członkowski podstawowego zestawu znaków źródłowych. Program MSVC umożliwia również używanie dodatkowego zestawu znaków w plikach źródłowych na podstawie kodowania pliku. Domyślnie program Visual Studio przechowuje pliki źródłowe przy użyciu domyślnej strony kodowej. Gdy pliki źródłowe są zapisywane przy użyciu strony kodowej specyficznej dla ustawień regionalnych lub strony kodowej Unicode, MSVC umożliwia używanie dowolnych znaków tej strony kodowej w kodzie źródłowym, z wyjątkiem kodów kontrolnych, które nie są jawnie dozwolone w podstawowym zestawie znaków źródłowych. Można na przykład umieścić japońskie znaki w komentarzach, identyfikatorach lub literałach ciągu, jeśli zapiszesz plik przy użyciu japońskiej strony kodowej. MSVC nie zezwala na sekwencje znaków, których nie można przetłumaczyć na prawidłowe znaki wielobajtowe ani punkty kodu Unicode. W zależności od opcji kompilatora nie wszystkie dozwolone znaki mogą być wyświetlane w identyfikatorach. Aby uzyskać więcej informacji, zobacz temat Identyfikatory.
END Microsoft Specific
Nazwy znaków uniwersalnych
Ponieważ programy języka C++ mogą używać o wiele więcej znaków niż te określone w podstawowym zestawie znaków źródłowych, można określić te znaki w przenośny sposób przy użyciu uniwersalnych nazw znaków. Nazwa znaku uniwersalnego składa się z sekwencji znaków reprezentujących punkt kodu Unicode. Mają one dwie formy. Służy \UNNNNNNNN
do reprezentowania punktu kodu Unicode formularza U+NNNNNNNN, gdzie NNNNNNNN jest ośmiocyfrowym numerem punktu kodu szesnastkowego. Użyj czterech cyfr \uNNNN
, aby reprezentować punkt kodu Unicode formularza U+0000NNNN.
Nazwy znaków uniwersalnych mogą być używane w identyfikatorach i literałach ciągów i znaków. Nie można użyć uniwersalnej nazwy znaku do reprezentowania zastępczego punktu kodu w zakresie 0xD800-0xDFFF. Zamiast tego użyj żądanego punktu kodu; kompilator automatycznie generuje wszelkie wymagane zastępcy. Dodatkowe ograniczenia dotyczą uniwersalnych nazw znaków, które mogą być używane w identyfikatorach. Aby uzyskać więcej informacji, zobacz Identyfikatory i Ciąg i Literały znaków.
Specyficzne dla firmy Microsoft
Kompilator języka Microsoft C++ traktuje znak w postaci uniwersalnej nazwy znaków i literału wymiennie. Można na przykład zadeklarować identyfikator przy użyciu formularza nazwy uniwersalnego znaku i użyć go w postaci literału:
auto \u30AD = 42; // \u30AD is 'キ'
if (キ == 42) return true; // \u30AD and キ are the same to the compiler
Format znaków rozszerzonych w schowku systemu Windows jest specyficzny dla ustawień regionalnych aplikacji. Wycinanie i wklejanie tych znaków do kodu z innej aplikacji może spowodować wprowadzenie nieoczekiwanych kodowań znaków. Może to spowodować analizowanie błędów bez widocznej przyczyny w kodzie. Zalecamy ustawienie kodowania pliku źródłowego na stronę kodową Unicode przed wklejeniem znaków rozszerzonych. Zalecamy również użycie edytora IME lub aplikacji Mapa znaków w celu wygenerowania znaków rozszerzonych.
END Microsoft Specific
Zestawy znaków wykonywania
Zestawy znaków wykonywania reprezentują znaki i ciągi, które mogą pojawić się w skompilowanym programie. Te zestawy znaków składają się ze wszystkich znaków dozwolonych w pliku źródłowym, a także znaków sterujących reprezentujących alert, backspace, powrotu karetki i znaku null. Zestaw znaków wykonywania ma reprezentację specyficzną dla ustawień regionalnych.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla