ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1031418
POV_ (27.08.2020 11:43, просмотров: 2314) MBedder
gcc и sprintf... 

Строка должна быть const char. Если я такую объявил и передал в функцию - всё норм.

А если строка входит в структуру, та в юнион, который static const, то уже нехорошо.

Статический анализатор QT ругается. Компилер компилит, но лишь потому, как предполагаю, что флаг некий передан (или отсутствует?).

"warning: format string is not a string literal (potentially insecure)"


Можно const где угодно расставить, хоть самому char [], пофиг - предупреждение имеется.


typedef union {
    uint8_t array[BCOM_CONFIG_LENGTH];
    bcom_config_t cfg;
} bcom_config_array_t;


static const bcom_config_array_t board_info = {
....
}


snprintf((char*)src, 64, board_info.cfg.psu[num].desc)