Stałe znaków języka C++

Stałe znaków są jeden lub więcej członków zestaw znaków podstawowe źródło, zestaw znaków w którym program jest zapisywany, ujęty w znaki cudzysłowu pojedynczego (').Są one używane do reprezentowania znaków w zestaw znaków wykonywanie podstawowych, zestaw znaków na komputerze, gdy program jest wykonywany.

Programu Microsoft

Znak kompilatora, źródła i wykonanie Microsoft C/C++ zestawy są zarówno ASCII.

Zestaw znaków podstawowe źródło składa się ze znaków 96: spacja; znaki kontrolne, reprezentujące tabulator poziomy, tabulacji pionowej, wysuwu strony i nowego wiersza; i 91 następujących znaków:

abcdefghijklmnopqrstuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

0123456789

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

Wykonanie podstawowego zestawu znaków składa się znaki w zestawie znaków podstawowe źródło i znaków kontrolnych, które reprezentują alert, backspace, znak powrotu karetki i null.

KONIEC Microsoft szczególne

Istnieją trzy rodzaje stałych znaków:

  • Normalne znaki stałe

  • Stałe multicharacter

  • Stałe szerokich znaków

[!UWAGA]

Używać stałych szerokich znaków, zamiast stałych multicharacter do zapewnienia przenośności.

Znak stałe są określone jako jeden lub więcej znaków ujęty w znaki cudzysłowu pojedynczego.Na przykład:

char ch = 'x';          // Specify normal character constant.
int mbch = 'ab';        // Specify system-dependent
                        //  multicharacter constant.
wchar_t wcch = L'ab';   // Specify wide-character constant.

Należy zauważyć, że mbch jest typu int.Jeśli zostały zgłoszone jako typ char, drugi bajt nie będzie zachowane.Stała multicharacter składa się z czterech znaków znaczące; Określając więcej niż cztery generuje komunikat o błędzie.

Znaki wewnątrz stała znakowa mogą być wszystkie znaki graficzne źródłowego zestawu znaków, z wyjątkiem dla nowego wiersza, ukośnik odwrotny \, pojedynczy cudzysłów "i podwójny cudzysłów", lub może być podana, przy użyciu sekwencji unikowej.Istnieją trzy typy sekwencje unikowe: sekwencji unikowych proste, ósemkowym i szesnastkowej.

Sekwencje unikowe proste może być dowolną z następujących czynności:

\' \" \? \\
\a \b \f \n \r \t \v

Sekwencji unikowej ósemkową jest ukośnikiem odwrotnym i przez sekwencję do 3 cyfr ósemkowym.

Szesnastkową sekwencję anulowania jest odwróconą, a po nim znak x, a po nim sekwencję znaków szesnastkowych.

Microsoft C++ obsługuje normalny, multicharacter i stałe szerokich znaków.Umożliwia określenie członków zestawu (na przykład do obsługi aplikacji międzynarodowych) znaków rozszerzonych wykonanie przez stałe szerokich znaków.Stałe normalne znaki mają typ char, multicharacter stałe mają typ int, i stałe szerokich znaków mają typ wchar_t.(Typ wchar_t jest zdefiniowany w standardowych plików STDDEF.H, STDLIB.H i ciąg znaków.H.Funkcje szerokich znaków, są jednak zdefiniowała tylko w STDLIB.H.)

Jedyna różnica w specyfikacji między stałymi normalnych i szerokich znaków jest, że stałe szerokich znaków są poprzedzone literą L.Na przykład:

char schar = 'x';               // Normal character constant
wchar_t wchar = L'\x8119';    // Wide-character constant

W poniższej tabeli przedstawiono zarezerwowane lub nongraphic znaków, które są systemowe zależne lub nie jest dozwolone w obrębie stałych znaków.Znaki te powinny być reprezentowane w sekwencje escape.

Zarezerwowane w języku C++ lub Nongraphic znaków

Znak

ASCII

Reprezentacja

ASCII

Wartość

Sekwencja unikowa

Nowy wiersz

NL (LF)

10 lub 0x0a

\n

Tabulator poziomy

HT

9

\t

Tabulacji pionowej

VT

11 lub 0x0b

\v

BACKSPACE

BS

8

\b

Powrót karetki

CR

13 lub 0x0d

\r

Wysuwu strony

FF

12 lub 0x0c

\f

Alert

BEL

7

\a

Kreska ułamkowa odwrócona

\

92 lub 0x5c

\\

Znak zapytania

?

63 lub 0x3f

\?

Pojedynczy cudzysłów

'

39 lub 0x27

\'

Podwójny cudzysłów.

"

34 lub 0x22

\"

Liczbę ósemkową

ooo

\ooo

Liczba szesnastkowa

hhh

\xhhh

Znak NULL

NUL

0

\0

Jeśli znaku odwróconej kreski ukośnej nie określono sekwencji escape prawnych, wynik jest wdrożenie zdefiniowane.W Microsoft C++ znaku odwróconej kreski ukośnej jest dosłownie, tak jakby escape nie byli obecni i ostrzeżenie poziomu 1 ("Nierozpoznany znak sekwencji unikowej").

Sekwencje unikowe ósemkową, określony w formie \ooo, składają się z ukośnikiem odwrotnym i jednego, dwóch lub trzech znaków ósemkowych.Sekwencje unikowe szesnastkowym, określone w \x formularzahhh, składają się ze znaków \x następuje sekwencja cyfr szesnastkowych.W przeciwieństwie do stałych ósemkową escape brak limitu liczby cyfr szesnastkowych w sekwencji unikowej.

Sekwencje unikowe ósemkową są zakończone według pierwszego znaku, który nie jest cyfrą ósemkową, lub gdy trzy znaki są widoczne.Na przykład:

wchar_t och = L'\076a';  // Sequence terminates at a
char    ch = '\233';     // Sequence terminates after 3 characters

Podobnie sekwencje unikowe szesnastkowym kończy się pierwszy znak, który nie jest cyfrą szesnastkową.Ponieważ cyfry szesnastkowe zawierają litery a przez f (i A poprzez F), upewnij się, sekwencji unikowej kończy się na zamierzone cyfra.

Ponieważ znak cudzysłowu pojedynczego (') umieszcza znak stałych, użyć sekwencji unikowej \' do reprezentowania ujęty w znaki cudzysłowu pojedynczego.Podwójny cudzysłów (") mogą być reprezentowane bez sekwencji unikowej.Znak odwróconej kreski ułamkowej (\) jest znak kontynuacji wiersza umieszczane na końcu wiersza.Jeśli znak odwróconej kreski ułamkowej ma się pojawiać wewnątrz stała znakowa musi wpisz dwa ukośniki odwrotne w wierszu (\\).(Zobacz Etapów translacji w Odniesienia preprocesora uzyskać więcej informacji o kontynuacji wiersza.)

Zobacz też

Informacje

Literały C++