JohnKorsh
Jun 25 2012, 13:31
Пишу на C для MSP в IAR. Думаю, вопрос элементарный, просто не нашёл ответа в книгах по C. Я использую большие статические массивы данных разной размерности и состоящие из переменных разного типа. Массивы никогда не используются одновременно. Например:
static unsigned short int Array_1 [1024];
static int Array_2 [2048];
Можно ли "объяснить" компилятору, чтобы он располагал эти массивы в одной, перекрывающейся обдасти RAM
для экономии RAM?
Для этого существует union.
Почитайте на досуге.
esaulenka
Jun 26 2012, 12:59
Маленький советик: не надо этим злоупотреблять.
Проблемы вида "я сохранил переменную в буфер, вызвал совершенно постороннюю функцию, которая для своих целей попользовалась тем же буфером, а потом в первой функции продолжил работать со своей переменной" могут попортить много нервов.
В вышеописанной ситуации всё просто и понятно, но когда код чужой, уровней вложенности - штуки 3, а переменная портится далеко не всегда...
Самое забавное - это костыли вида "тут я сохраню переменную из буфера в локальную копию, вызову функцию, а потом восстановлю буфер". Т.е. автор о проблеме знал, но ничего с ней не сделал.