Почему это называют 'wchar_t' и не просто 'wchar'?

Можно просто читать страница Boost Background Information для получения быстрого обзора того, почему необходимо использовать Повышение и для чего можно использовать его. Стоимостью в несколько минут это берет.

24
задан franji1 7 April 2015 в 20:34
поделиться

3 ответа

Это наследие от C, где wchar_t - это ] typedef и typedef имеют этот суффикс в стандартной библиотеке C.

32
ответ дан 28 November 2019 в 23:18
поделиться

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

Например, там time_t , wchar_t , uint32_t , size_t , ptrdiff_t , div_t и т.д.

Интересно (во всяком случае, для меня) то, что стандарт C не резервирует имена в этой форме для себя. Стандарт C указывает на то, что имена, начинающиеся с « str », « mem » и несколько других префиксов, могут быть добавлены в стандарт в будущем, но это не так. сделайте то же самое с именами, заканчивающимися на "

11
ответ дан 28 November 2019 в 23:18
поделиться

Я думаю, что это была «фаза» в развитии C и C ++. Ощущалась потребность в некоторых новых типах, но добавление новых ключевых слов всегда оспаривалось. Некоторый код уже использовал wchar , гораздо меньше кода использовало бы wchar_t . Обратите внимание, что size_t и diff_t относятся к одной эпохе.

5
ответ дан 28 November 2019 в 23:18
поделиться