Почему ключевые слова типа заканчиваются на & quot; _t & quot; суффикс?

Я это понимаю size_t имеет _t суффикс, так как его псевдоним /typedef, Однако я не могу понять, по какой причине char16_t, char32_t а также wchar_t содержит _t суффикс.

1

Решение

За wchar_t:

В C ++ wchar_t это отличный фундаментальный тип (и, следовательно, он не определен в <cwchar> ни какой другой заголовок).

В C это typedef целочисленного типа.

За char16_t а также char32_t, определенный в <cuchar>/uchar.c:

В C этот заголовок определяет два макроса: char16_t а также char32_t, которые отображаются на беззнаковые целочисленные типы соответствующего размера (так же, как uint_least16_t а также uint_least32_tсоответственно).

В C ++ char16_t а также char32_t являются фундаментальными типами (и поэтому этот заголовок не определяет такие макросы в C ++).

Таким образом, в обоих случаях, хотя они являются фундаментальными типами в C ++, они сохраняют _t для совместимости с C, где они были typedefs или макросами.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]