|
116 / 106 / 51
Регистрация: 29.03.2016
Сообщений: 480
|
|
Wchar_t и unsigned wchar_t в windows04.04.2016, 12:13. Показов 3786. Ответов 22
Метки нет (Все метки)
Печально, но факт:
wchar_t - 2 байта, unsigned wchar_t - 4 байта Вопрос1: используется ли unsigned wchar_t для хранения UNICODE-символов d windows?, и если да то.. Вопрос2: как будут размещаться байты при конвертировании char ('1') в unsigned wchar_t (00 00 00 31)? Вопрос3: Почему эти 2 типа так отличаются?
0
|
|
| 04.04.2016, 12:13 | |
|
Ответы с готовыми решениями:
22
Почему const wchar_t* воспринимается как wchar_t* ? Cannot convert from 'wchar_t' to 'const wchar_t *'
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 04.04.2016, 13:33 | |
|
0
|
|
|
116 / 106 / 51
Регистрация: 29.03.2016
Сообщений: 480
|
||||||
| 04.04.2016, 15:40 [ТС] | ||||||
|
avgoor, в стандарте может и нет, а у меня на Dev-C++ на винде позволяет так делать
и функция typeid(unsigned wchar_t).name() из <typeinfo> возвращает 'j', что аналогично unsigned int Добавлено через 2 минуты
0
|
||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||
| 04.04.2016, 15:59 | ||
|
Гарантируется, что wchar_t может содержать в себе самый широкий символ платформы. wchar_t используется для хранения символов и для арифметики он не предназначен, по этому он и не бывает знаковым/беззнаковым. (кстати, надеюсь, помните, что signed char, unsigned char и char - три разных типа из которых char предназначен для строковых операций, и про него нельзя сказать - знаковый он или нет). 2) Зависит от платформы. на x86 - wchar_t(0x00ff) в памяти разместится как {0xff, 0x00} 3) См п.1 - для гих ничего не гарантируется.
1
|
||
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|||||||
| 28.10.2021, 18:51 | |||||||
[QUOTE=avgoor;8977414] ... и для арифметики он не предназначен... [CPP] Что в данном случае означает для арифметики не предназначен ?
0
|
|||||||
|
Вездепух
12943 / 6810 / 1821
Регистрация: 18.10.2014
Сообщений: 17,234
|
||
| 28.10.2021, 19:07 | ||
unsigned wchar_t.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||||||
| 28.10.2021, 19:26 | ||||||||
|
TheCalligrapher, да, но :
Ни разу не видел в спецификациях С++ что то про wchar_t Добавлено через 9 минут
разница лишь в способе обнаружения ошибки, имхо, но это не точно, так говорит мне разбавленная интуиция.
0
|
||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 28.10.2021, 19:28 | ||
|
Я вот понять не могу, откуда эта тяга делать заявления по поводу вещей, в которых вы (не вы конкретно, а все те, кто так делает) не уверены\плохо разбираетесь? При всей-то полноте доступной информации, до которой добраться можно буквально в два клика. Зачем писать "я думаю, что wchar_t вообще не стандартный тип", если вы перед этим легко можете проверить, правильно вы думаете или нет? Я правда искренне этого не понимаю.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 28.10.2021, 19:32 | |||
|
Добавлено через 1 минуту DrOffset, потому что по этому "стандартному" типу далеко не четкая документация по тому же cppreferrence а читать изначальные спецификации С++ в силах не каждый, да и в 99% случаев там просто филологический мусор, не нужный на практике. Добавлено через 1 минуту
Добавлено через 32 секунды DrOffset, я не пойму почему наезд на меня, если не правы все ваышестоящие
0
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 28.10.2021, 19:33 | ||
|
А тип таки стандартный без всяких кавычек, и моя ссылка на "изначальную" спецификацию это прямо подтверждает.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 28.10.2021, 19:34 | ||
|
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 28.10.2021, 19:34 | ||
|
Еще более вышестоящих я даже обсуждать не буду, потому что это старые посты и не факт, что это люди вообще есть на форуме до сих пор.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 28.10.2021, 19:38 | |
|
И теми же строками на которые вы ссылаетесь Комиссия про стандартизацию С++ снимает с себя отвественность за этот тип, неявно убирая его из стандарта
Добавлено через 1 минуту и вообще STL не является стандартом С++, о чем вы вообще ? Добавлено через 43 секунды size_t тоже не стандартный тип Добавлено через 31 секунду не встроенный
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||
| 28.10.2021, 19:43 | ||||||
|
http://eel.is/c++draft/basic.t... damental-7
Добавлено через 5 минут Стандартный - значит описанный в стандарте. Не нужно ничего выдумывать. Если нечто в стандарте описано как implementation-defined, значит стандарт определяет это как imlementation-defined. И это определение как imlementation-defined является стандартным, именно по этой причине. И если вам говорят, что нечто является стандартным, это означает, что открыв этот самый стандарт вы найдете там описание этого нечта.
0
|
||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 28.10.2021, 19:45 | ||
|
Про стандарты это извечная тема во всех областях бытия.
В программистах почти всегда можно сойтись на более точных терминах. Как я уточнил, есть встроенные типы и все остальные, называемые пользовательскими. Нам точно нужно в это углубляться ? А про Поэтому пусть себе так дальше и думает.
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|
| 28.10.2021, 19:46 | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 28.10.2021, 19:48 | |
|
DrOffset;15806204"]И если вам говорят, что нечто является стандартным, это означает, что открыв этот самый стандарт вы найдете там описание этого нечта.[/quote]
http://eel.is/c++draft вот это кстати не про стандарты, это просто описание проекта.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 28.10.2021, 19:51 | |||
|
Если некий компилятор делает его через алиас, значит он просто нарушает спецификацию. При этом сам факт такого нарушения никак не влияет ни на встроенность wchar_t в частности, ни на его стандартность в целом. Добавлено через 2 минуты
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 28.10.2021, 19:55 | ||
|
И с моим подходом и легче и программировать и жить. Не знаю чем для вас встроенный алиас отличается от рчуного, но видимо он медом помазан, и стандарт видно тоже. Что бы закрывать глаза на обычную логику. Тема закрыта.
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 28.10.2021, 20:07 | |||
|
Прямым текстом написано - отдельный тип, distinct type именно так и переводится, если что. Выделение красным - мое. Вам по какой-то причине просто кажется, что так правильнее. С логикой это ничего общего не имеет. Чистый субъективизм. У нас есть формальная система, и в рамках нее мы можем рассуждать. Она может нам нравится или не нравится, но прикрывать свои личные предпочтения логикой - абсурдно. И вы так и не ответили, почему в вашей "логике" char выглядит нормально, а wchar_t уже какой-то не такой? При том, что для них введены совершенно идентичные правила.
1
|
|||
| 28.10.2021, 20:07 | |
|
Помогаю со студенческими работами здесь
20
Error: cannot bind 'std::basic_ostream<wchar_t>' lvalue to 'std::basic_ostream<wchar_t>&&'| Wchar_t wchar_t wchar_t to LPCWSTR Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|