char, wchar_t, char8_t, char16_t, char32_t

Типы , wchar_t , char8_t char16_t и char32_t встроенные типы char , представляющие буквенно-цифровые символы, не буквенно-цифровые глифы и непечатаемые символы.

Синтаксис

char ch1< 'a' >; // or < u8'a' >wchar_t ch2< L'a' >; char16_t ch3< u'a' >; char32_t ch4< U'a' >; 

Замечания

Тип char был исходным типом символов в C и C++. Тип char можно использовать для хранения символов из набора символов ASCII или любого из наборов символов ISO-8859, а также отдельных байтов многобайтовых символов, таких как SHIFT-JIS или кодировка UTF-8 набора символов Юникода. В компиляторе char Майкрософт используется 8-разрядный тип. Это отличный тип от обоих signed char и unsigned char . По умолчанию переменные типа char повышаются до int типа, signed char если /J параметр компилятора не используется. В разделе /J они рассматриваются как тип unsigned char и получают повышение до int без расширения знака.

Тип unsigned char часто используется для представления байта, который не является встроенным типом в C++.

Тип wchar_t — это определяемый реализацией тип символов. В компиляторе Майкрософт он представляет 16-разрядный расширенный символ, используемый для хранения Юникода, закодированного как UTF-16LE, собственный тип символа в операционных системах Windows. Расширенные версии библиотеки среды выполнения C (UCRT) используются wchar_t и его указатели и типы массивов в качестве параметров и возвращаемых значений, как и расширенные версии символов собственного API Windows.

char8_t char16_t Типы и char32_t типы представляют 8-разрядные, 16-разрядные и 32-разрядные символы соответственно. ( char8_t новый в C++20 и требуется /std:c++20 /std:c++latest параметр компилятора.) Юникод, закодированный как UTF-8, может храниться в типе char8_t . char8_t Строки и char тип называются узкими строками, даже если используется для кодирования символов Юникода или нескольких байтов. Юникод, закодированный как UTF-16, может храниться в типе char16_t , а Юникод закодирован как UTF-32 можно хранить в типе char32_t . Строки этих типов и wchar_t все называются широкими строками, хотя термин часто относится к строкам wchar_t типа.

В стандартной библиотеке basic_string C++ тип предназначен как для узких, так и для широких строк. Используйте std::string , если символы char имеют тип, std::u8string если символы имеют тип, когда символы имеют тип char8_t , std::u32string std::u16string когда символы имеют тип char16_t , а также когда char32_t символы имеют тип, а std::wstring также когда символы имеют тип wchar_t . Другие типы, представляющие текст, включая std::stringstream и std::cout имеющие специализации для узких и широких строк.

Обратная связь

Были ли сведения на этой странице полезными?

Мова програмування С/С++. Основні поняття. Типи даних.

Мова С++ – послідовник мови С, що містить обєктно-орієнтоване програмування.

Алфавіт

великі та малі літери латинської абетки;

• пробільні символи : пробіл, символи табуляції, символ переходу на наступний рядок тощо;

Програма мовою С складається з синтаксичних конструкцій які називаються команди (оператори, вказівки).

Команди будуються з лексем.

Лексема – неподільний елемент мови (слово, число, символи операцій).

Ідентифікатор – це назва (ім’я), яку користувач надає об’єктам, наприклад змінним, сталим, функціям.

Ідентифікатори записуються латинськими буквами, цифрами, знаком підкреслення.

Розпочинаються ідентифікатори з латинських літер та знаку підкреслення.

A, a, max, Max, MAX, _max, max1, max_znach – правильно записані ідентифікатори.

1max, max-znach, max znach, a..b – неправильно записані ідентифікатори

При написаннні імені ідентифікатора враховується регіср.(MAX,Max,max- три різні ідентифікатори)

Ключові слова – це зарезервовані ідентифікатори, які використовуються для написання команд.

auto continue float interrupt short unsigned

asm default for long signed void

break do far near sizeof volatile

case double goto pascal static while

cdecl else huge switch struct

char enum if register typedef

const extern int return union

Перепроцесор – це програма, яка опрацьовує директиви.

Директива перепроцесора це команди компілятора, які виконуються на початку програми

Директиви мови С розпочинаються символом #

#include – директива підключення файлу, бібліотеки

#define –має два значення:

1 – оголошення константи

2- описати макроси (короткі команди, функції тощо.)

Константа – це величина, яка не змінюється протягом виконання всієї програми

Цілі константи:

1389, 196, 0, -1024

Дійсні константи:

2.1324, 1.65e-28, .123E21.

Константи у восьмирічній системі

Константи у шістнадцятирічній системі

0x12, 0x1ABC, 0xFFF

Символьні константи:

Рядкові константи

“Рядкові константи”, “Hello !”, “12345”, “C++”.

Іменовані константи

Загальний вигляд іменованої константи:

#include

Назва константи значення