1

Тема: Текстовые переменные

Сейчас при кодогенерации все текстовые переменные приводятся к виду char[200]. В какой кодировке хранятся данные? Сколько байт тратится на один символ из латиницы/кирилицы?
У нас есть объект у которого много входящих текстовых переменных размером по 4 символа. Возможно ли как-то указать что нам для этих переменных не нужно 200 байт, т.к. все переменные у нас гонятся через сеть и вопрос оптимизации стоит очень остро.
На данный момент предполагаем использовать несколько переменных, которые в самом формате будут разбиваться по 4 символа, но это не очень удобно.

2

Re: Текстовые переменные

Здравствуйте.

gluhow пишет:

Сейчас при кодогенерации все текстовые переменные приводятся к виду char[200]. В какой кодировке хранятся данные? Сколько байт тратится на один символ из латиницы/кирилицы?

Кодировка хранения строчных символов зависит от настройки кодогенератора. Для генератора кода CGFormatPro2.X это: закладка Общее -> Строки -> Набор символов. Значение Multi-Byte использует тип char_mb, а значение Unicode соответствует типу char_un. Оба типа объявляются в файле GraphLib.h и могут быть скорректированы в закладке Файлы -> GraphLib.h -> Содержимое. Для типа char_mb используется тип char, который обычно равен 1 байту. Для типа char_un для хранения символов по умолчанию используется тип wchar_t, размер которого зависит от реализации. К примеру, в ОС Windows он равен 2 байтам, а в OC Linux – 4.

3

Re: Текстовые переменные

gluhow пишет:

У нас есть объект у которого много входящих текстовых переменных размером по 4 символа. Возможно ли как-то указать что нам для этих переменных не нужно 200 байт, т.к. все переменные у нас гонятся через сеть и вопрос оптимизации стоит очень остро.

Размер массива строчных переменных можно уменьшить. В настройках генератора кода CGFormatPro2.X он задаётся в закладке Общее -> Строки -> Размер массива. Но будьте осторожны, некоторые строки в проекте при отработке в аппаратуре могут отображаться не полностью.