Что представляет собой тип `rune_t` в C? - PullRequest
0 голосов
/ 23 июня 2018

Просматривая мой заголовок GCC stddef.h, я обнаружил тип, о котором никогда не слышал, rune_t:

#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
#if __BSD_VISIBLE
#ifndef _RUNE_T_DECLARED
typedef __rune_t        rune_t;     /* <--- Here it is */
#define _RUNE_T_DECLARED
#endif
#endif
#endif
#endif

Что касается окружающих #if s, я предполагаю, что это специфичный для FreeBSD тип, но что он представляет?

Бонусный вопрос: это как-то связано с руническим алфавитом ?

1 Ответ

0 голосов
/ 23 июня 2018

человек-руна

Функции 4.4BSD rune устарели в пользу расширенных многобайтовых и широких символов ISO C99 и не должны использоваться в новых приложениях. Попробуйте вместо этого использовать setlocale (3), mbrtowc (3), wcrtomb (3), fgetwc (3), ungetwc (3) и fputwc (3).

Раньше это было что-то, что имеет дело с расширенными наборами символов. Экзотических персонажей иногда в шутку называют «рунами», отсюда и название. Этот тип может поддерживать или не поддерживать фактический рунический алфавит.

...