#include <wchar.h> int mbsinit(const mbstate_t *ps);
Начальное состояние является состоянием в начале преобразования строки. Есть два типа состояния: одни используется функциями преобразования многобайтовых строк в широкие символы, такими, как mbsrtowcs, а другие используются функциями преобразования широких символов в многобайтовые строки, такими, как wcsrtombs; но все они вмещаются в mbstate_t и имеют одинаковое представление в начальном состоянии.
Все состояния 8-битных кодировок соответствуют начальному состоянию. Для многобайтовых кодировок - UTF-8, EUC-*, BIG5 или SJIS, функция преобразования из широкого символа в многобайтовую последовательность никогда не выводит неисходные состояния, но функция преобразования (напр. mbrtowc) многобайтовой последовательности в широкий символ выводит неисходные состояния, когда прерывается в середине символа.
Одним из способов создания mbstate_t в его начальном состоянии будет установка его нулевого значения:
mbstate_t state; memset(&state,0,sizeof(mbstate_t));В Linux это является действенным, но может привести к появлению следующего предупреждения компилятора:
mbstate_t state = { 0 };
Функция mbsinit проверяет соответствие *ps начальному состоянию.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |