Megosztás a következőn keresztül:


C3850-ös fordítási hiba

'char': az univerzális karakternév érvénytelen karaktert ad meg

Megjegyzések

Az univerzális karakternévként jelölt karaktereknek érvényes Unicode-kódpontokat kell képviselniük a 0–10FFFF tartományban. Az univerzális karakternevek nem tartalmazhatnak értéket a Unicode helyettesítő tartományában, a D800-DFFF-ben vagy egy kódolt helyettesítő párban. A fordító automatikusan létrehozza a helyettesítő párt egy érvényes kódpontból.

A C-ként lefordított kódban a 0000–009F tartományban nem szerepelhet univerzális karakternév, beleértve a 0024 ('$'), a 0040 ('@') és a 0060 (''' ) kivételeket is.

A C++-ként lefordított kódban egy univerzális karakternév bármilyen érvényes Unicode-kódpontot használhat egy sztringben vagy karakterkonstansban. A literálon kívül az univerzális karakternév nem jelölhet vezérlőkaraktert a 0000-001F vagy a 007F-009F tartományban, mindkettőt beleértve, vagy az alap forrás karakterkészlet tagja. További információ: Karakterkészletek.

Example

Az alábbi példa létrehozza a C3850-et, és bemutatja a javítás módját:

// 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
}