Группа: Участник
Сообщений: 30
Регистрация: 8-03-06
Из: Kyiv, UA
Пользователь №: 15 066
Пардон, что простой вопрос. Разбираюсь с програмой, в которой много конструкций вида :
void func1 () { uchar LocalArr[5];
. // load data to LocalArr . func2 (LocalArr); . . } /*======================== do smth with array -------------------------*/ void func2 (uchar *ptr) { . . } //-------------------------
Может кто-то объяснить, насколько законно передавать во вложенные функции указатель на локальную переменную. В массив грузятся данные каждый раз по новому, глобально хранить их не надо. Пишу в IAR для AVR.
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484
Цитата(Непомнящий Евгений @ Jan 28 2008, 14:57)
В GCC есть вложенные функции? .... А не могли бы вы дать ссылку на описание этого? И как интересно он разруливает локальные области видимости внутри функции...
A trampoline is a small piece of code that is created at run time when the address of a nested function is taken. It normally resides on the stack, in the stack frame of the containing function.
Анатолий.
Сообщение отредактировал aesok - Jan 28 2008, 12:56