777777 0 21 ноября, 2009 Опубликовано 21 ноября, 2009 · Жалоба Оказалось, что в сабжевом компиляторе сабжевый тип имеет размер 4 байта. Нет ли там каких-нибудь настроек чтобы сделать его нормальным 2-байтовым? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DPL 0 22 ноября, 2009 Опубликовано 22 ноября, 2009 · Жалоба Насколько я понимаю, тип "wchar_t" не является "встроенным" в компилятор, поэтому крутить настройки компилятора вряд ли поможет. Нужно поискать в заголовочных файлах, от какого базового типа он произошёл: что-то вроде typedef unsigned int wchar_t; Ну а дальше - зависит от потребностей. Если этот тип нужен только для личного использования, то его описание можно поправить, например так: typedef uint16_t wchar_t; Если же предполагается вызывать библиотечные функции, использующие этот тип - тогда хуже: они, вероятно, скомпилированы с четырёхбайтной версией wchar_t. Наверное можно попытаться их перекомпилировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
777777 0 23 ноября, 2009 Опубликовано 23 ноября, 2009 · Жалоба Насколько я понимаю, тип "wchar_t" не является "встроенным" в компилятор, поэтому крутить настройки компилятора вряд ли поможет. Как минимум, редактор его подсвечивает. Это, конечно, еще ничего не говорит о компиляторе, но все-таки... Нужно поискать в заголовочных файлах, от какого базового типа он произошёл: что-то вроде typedef unsigned int wchar_t; У этого компилятора нет команды Go To Definition, как в Visual Studio, поэтому найти определение проблематично. В программе переопределить его с помощью другого typedef-а не получилось, компилятор ругается. Пока заменил с помощью #define, но это же не кошерно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 23 ноября, 2009 Опубликовано 23 ноября, 2009 · Жалоба У этого компилятора нет команды Go To Definition, как в Visual Studio, поэтому найти определение проблематично. Приехали... Проблематично... Стандартные типы из ISO/IEC уже поиском ищем? stddef.h Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DPL 0 23 ноября, 2009 Опубликовано 23 ноября, 2009 · Жалоба У этого компилятора нет команды Go To Definition, как в Visual Studio, поэтому найти определение проблематично. В Студии это, конечно, поудобнее. Как вариант - можно в опциях проекта включить галочку "Generate preprocessed file" - по идее сформируется текстовый файл, в котором, в числе прочего, развёрнуты все include (в VDSP сам не пробовал). В этом файле и поискать, откуда берётся wchar_t. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bookevg 0 23 ноября, 2009 Опубликовано 23 ноября, 2009 · Жалоба Оказалось, что в сабжевом компиляторе сабжевый тип имеет размер 4 байта. Нет ли там каких-нибудь настроек чтобы сделать его нормальным 2-байтовым? Если переменную хранить во внутренней области памяти ширина, которой 16 бит, то переменная станет 16 битной, т.е. при сохранении старшие 16 бит будут терятся Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DPL 0 24 ноября, 2009 Опубликовано 24 ноября, 2009 · Жалоба Если переменную хранить во внутренней области памяти ширина, которой 16 бит, то переменная станет 16 битной, т.е. при сохранении старшие 16 бит будут терятся Хм... А где же тогда хранить long long или double ? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться