реклама на сайте
подробности

 
 
> нехитрый вопрос по С
vitko
сообщение Jan 28 2008, 11:25
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Непомнящий Евген...
сообщение Jan 28 2008, 11:57
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



В GCC есть вложенные функции?
Т.е. можно написать:
Код
int f()
{
   int a = 10;
   int f2()
   {
     return a + 2;
   }
   return f2();
}

А не могли бы вы дать ссылку на описание этого? И как интересно он разруливает локальные области видимости внутри функции...
Go to the top of the page
 
+Quote Post
aesok
сообщение Jan 28 2008, 12:37
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(Непомнящий Евгений @ Jan 28 2008, 14:57) *
В GCC есть вложенные функции?
....
А не могли бы вы дать ссылку на описание этого? И как интересно он разруливает локальные области видимости внутри функции...


GCC Internals Manual
15.2 Trampolines for Nested Functions:
http://gcc.gnu.org/onlinedocs/gccint/Tramp...tml#Trampolines

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.

sad.gif

Анатолий.

Сообщение отредактировал aesok - Jan 28 2008, 12:56
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 19:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016