Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Глобальнае переменные.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Jenya7
Среда разработки IAR. С AVR все было просто – в одном файле определяю extern myval; другие эту переменную видят. С ARM я определяю глобальную переменную в одном файле как экстерн, компайлер ругается, тогда я определяю переменную в том файле в котором хочу работать с ней обычным образом и все нормально. Но что если я хочу работать с этой переменной в третьем файле? Определять ее и там?
doom13
в одном из файлов должно быть объявление
Код
type myvar;

, во всех остальных, где её используете
Код
extern type myvar;

если первое у Вас отсутствует, то переменная не создана и компилер ругается.
Jenya7
Цитата(doom13 @ Jul 31 2014, 12:49) *
в одном из файлов должно быть объявление
Код
type myvar;

, во всех остальных, где её используете
Код
extern type myvar;

если первое у Вас отсутствует, то переменная не создана и компилер ругается.

Я понял. Большое спасибо. То есть extern как бы указывает что переменная определена где то глобально?
doom13
Цитата(Jenya7 @ Jul 31 2014, 10:02) *
То есть extern как бы указывает что переменная определена где то глобально?

как бы да, т.е. память под неё уже выделена, если без extern переменная нигде не объявлена - то её и нет (память под неё и не выделялась).
Jenya7
Спасибо.
jcxz
Цитата(Jenya7 @ Jul 31 2014, 12:36) *
Среда разработки IAR. С AVR все было просто – в одном файле определяю extern myval; другие эту переменную видят. С ARM я определяю глобальную переменную в одном файле как экстерн, компайлер ругается, тогда я определяю переменную в том файле в котором хочу работать с ней обычным образом и все нормально. Но что если я хочу работать с этой переменной в третьем файле? Определять ее и там?

От процессора это никак не зависит. Правила си едины для всех.
В cи-файле объявляете переменную без extern, в соответствующем ему хидере - с extern. Хидер включаете всюду где есть ссылки на неё.
Возможен также вариант с вообще только одним объявлением в хидере.
zhevak
Цитата(jcxz @ Jul 31 2014, 15:08) *
От процессора это никак не зависит. Правила си едины для всех.
В cи-файле объявляете переменную без extern, в соответствующем ему хидере - с extern. Хидер включаете всюду где есть ссылки на неё.
Возможен также вариант с вообще только одним объявлением в хидере.

[grumbling_mode]
А почему "хИдер", а не "хЭдер"? Где вы изучали язык?
[/grumbling_mode]

Я просто оставлю это здесь:
http://ru.forvo.com/search-en/header/
menzoda
Тогда уж лучше "заголовочный файл", но "хидер" действительно режет глаз.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.