Одним из способов является определение char* []
как глобального и использования его индексов для доступа к нему:
char stringLiterals [] = { "0101010", "10010010", "111", "010100100", ... };
Использование : вместо
char *p = stringLiteral[3];
использовать
unsigned int idx = 3;
Обоснование : Если вы уплотняете эту строку в биты для целей сериализации, тогда это нормально.Но в остальном я не вижу никакого смысла в их сжатии.В моем приведенном выше решении он не использует никакой дополнительной памяти .У вас уже есть массив строковых литералов;Я просто прошу объявить в глобальной области видимости и использовать ее индекс.
Кроме того, если размер строки> 32 байта, вы не сможете сохранить его в одном 32-битном int
.