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

 
 
> проблема областей видимости в Си, в функции не видны переменные объявленные в вызывающей функции
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
Ответов
xemul
сообщение Sep 22 2008, 13:40
Сообщение #2



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Androliz @ Sep 22 2008, 17:14) *
...
Переменная объявленная в main является локальной. Как не делая её голобальной и не передавая ее в функцию(или указатель на неё) решить проблему вызова функции из другого файла, работающей с локальными переменными?

Объявите глобальный указатель ButtState *p_bs, в main() присвойте ему адрес buttStates[], в более другой функции из другого файла обращайтесь к buttStates[] через этот указатель. Но делать так стОит только при неудержимой склонности к программным перверсиям.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th August 2025 - 16:49
Рейтинг@Mail.ru


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