Для этого есть инструменты, типичное имя - «bin2c». Первый результат поиска: эта страница .
Вам необходимо создать массив char
, а также, желательно, сделать его static const
.
В С:
Может потребоваться некоторая осторожность, поскольку у вас не может быть литерала типа char
, а также потому, что обычно подпись типа C char
зависит от реализации.
Возможно, вы захотите использовать такой формат, как
static const unsigned char my_data[] = { (unsigned char) 0xfeu, (unsigned char) 0xabu, /* ... */ };
Обратите внимание, что каждый литерал unsigned int
приводится к unsigned char
, а также суффикс 'u', который делает их беззнаковыми.
Так как этот вопрос был для C ++, где вы можете иметь литерал char
, вы можете вместо этого использовать такой формат:
static const char my_data[] = { '\xfe', '\xab', /* ... */ };
, поскольку это всего лишь массив символов char, вы также можете использовать обычный синтаксис строкового литерала. Встраивание нулевых байтов должно быть в порядке, если вы не пытаетесь рассматривать его как строку:
static const char my_data[] = "\xfe\xdab ...";
Это самое компактное решение. На самом деле, вы могли бы использовать это и для Си.