ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 июля
68309
-Mik- (08.09.2006 17:21, просмотров: 2851)
Как выделяет память под строки компилятор IAR ARM Неожиданно для себя заметил, что при создании такого массива: char* const strings[] = {"abcd", "efgh", "ijkl" }; компилятор IAR ARM 4.40 добавляет к какждой строке нулевые байты до границы слова (4 байта). Поэтому вместо того, чтобы занимать в памяти 5 байт, каждая строка занимает 8 байт. При этом если сделать так: char const strings[][5] = {"abcd", "efgh", "ijkl" }; то каждая строка занимает 5 байт, как и положено. Вопрос: зачем он выравнивает строки до границы слова? Ведь если в программе много подобных массивов, например, шрифтов, то потери памяти могут быть очень заметными. Можно ли его образумить? Чтение документации пока ни к чему не привело.