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

 
 
> проблема областей видимости в Си, в функции не видны переменные объявленные в вызывающей функции
Androliz
сообщение Sep 22 2008, 13:14
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 22-09-06
Из: Беларусь
Пользователь №: 20 595



Использую Keil RealView MDK-ARM V3.23
В функции main объявлена структура :
int main(void)
{
struct ButtState buttStates[20];//array of structures[/color]

Далее из main вызывается другая функция pressPreprocess, объявленная в другом файле, подключенном к проекту. Эта функция ипользует структуру buttStates[20].Но компилятор выдаёт ошибку, что не может найти эту переменную: identifyer buttStates is undefined...
Переменная объявленная в main является локальной. Как не делая её голобальной и не передавая ее в функцию(или указатель на неё) решить проблему вызова функции из другого файла, работающей с локальными переменными?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SergeiCh
сообщение Sep 22 2008, 13:33
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415



Цитата(Androliz @ Sep 22 2008, 20:14) *
Как не делая её голобальной и не передавая ее в функцию(или указатель на неё) решить проблему вызова функции из другого файла, работающей с локальными переменными?
AFAIK, никак. В gcc есть nested functions, которые имеют доступ к локальным переменным содержащей функции, но такая (nested) функция должна быть определена в той же функции, чьи переменные собирается использовать, т.е. в этом же файле. Разве что через #include smile.gif Про nested functions в Keil не слышал.
Go to the top of the page
 
+Quote Post



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

 


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


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