ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
280638 Топик полностью
fk0, легенда (28.10.2011 12:51, просмотров: 118) ответил MegaJohn на учусь писать мультиплатформенно. Кому интересно, найдите ошибку char* end_p = cp1251to_ucf2( "текст", dest_buff );
Я уже первую ошибку вижу. Пятой точкой чувствую, что это для GSM. Отсюда вывод: char меняем на wchar (для buff_src). А bin2asciihex на sprintf (на этих словах koyodza уже заплёвывает монитор). И константы в коде записывать как L"text". Потом buff_src неплохо бы быть const на всякий случай. А вторая ошибка -- char может быть знаковый, а может быть беззнаковый. И в выражении ucf2arr[*buff_src] получим отрицательный индекс в первом случае. У профессиональных программистов должно быть в ДНК прописано, что если char используем не как "символ", а как "байт" или "число" -- нужно вручную следить за знаком. Или пользоваться uint8_t или чем-то таким (чаще лучше uint_fast8_t, потому, что на некоторых архитектурах насильная восьмибитность даёт кучу лишних команд на уровне ассемблера).
[ZX]