Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"char": uniwersalna nazwa-znak określa nieprawidłowy znak
Uwagi
Znaki reprezentowane jako nazwy znaków uniwersalnych muszą reprezentować prawidłowe punkty kodu Unicode w zakresie od 0 do 10FFFF. Nazwa znaku uniwersalnego nie może zawierać wartości w zakresie zastępczym Unicode, D800-DFFF lub zakodowanej parze zastępczej. Kompilator automatycznie generuje parę zastępczą z prawidłowego punktu kodu.
W kodzie skompilowanym jako C nazwa znaku uniwersalnego może nie reprezentować znaku w zakresie 0000-009F, włącznie z wyjątkami 0024 ('$'), 0040 ('@') i 0060 (''').
W kodzie skompilowanym jako C++, nazwa znaku uniwersalnego może używać dowolnego prawidłowego punktu kodu Unicode w literału ciągu lub znaku. Poza literałem nazwa znaku uniwersalnego może nie reprezentować znaku sterującego w zakresach 0000-001F lub 007F-009F, włącznie lub składowej podstawowego zestawu znaków źródłowych. Aby uzyskać więcej informacji, zobacz Zestawy znaków.
Przykład
Poniższy przykład generuje kod C3850 i pokazuje, jak go naprawić:
// C3850.cpp
int main() {
int \u0019 = 0; // C3850, not in allowed range for an identifier
const wchar_t * wstr_bad = L"\UD840DC8A"; // C3850, UCN is surrogate pair
const wchar_t * wstr_good = L"\U0002008A"; // Okay, UCN is valid code point
}