Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 26.03.2015, 18:29  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: Квалификатор extern

Сообщение от dosikus Посмотреть сообщение
Если не ошибаюсь - исполняемый код в хэдерах, в каких-то компиляторах,
при компиляции каждого модуля куда сей хэдер инклудится, наплодит сущностей и защитный дефайн не поможет.
Это же легко проверяется. Линкер при этом выдаст кучу ошибок типа multiply defined symbols
Реклама:
Bill вне форума  
Непрочитано 26.03.2015, 18:52  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Квалификатор extern

Bill, Угу , совсем недавно нарвались на сие - http://zx-pk.ru/showpost.php?p=782977&postcount=258
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 27.03.2015, 06:49  
zepto
Прохожий
 
Регистрация: 26.03.2015
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
zepto на пути к лучшему
По умолчанию Re: Квалификатор extern

Да... Вижу тема получила продолжение в какую-то другую сторону, но это тоже хорошо!
Сообщение от С.М.С Посмотреть сообщение
Вон вы о чём, тогда надо определится, что мы вообще обсуждаем и для чего, а то одни думают про С, другие про С++, третьи вообще про бейсик. И для какой платформы
Изначально я имел в виду компилятор языка Си для AVR, который в Atmel Studio 6.2
Кстати, кто-нибудь знает, что там за компилятор?
Компилятор, если я не ошибаюсь, использует стандарт языка С99, так как позволяет определять переменную прямо в цикле for(uin8_t i=0, i‹10, i++){} Поправьте, если не так.

И все-таки, вот если я вижу что в .с файле программист определил переменную или функцию с extern, то что это означает? То что программист "учился" по урокам от Александра Писанеца?

И я правильно буду делать, если буду объявлять в заголовочном файле функции и переменные с extern, если мне их надо будет использовать в других файлах проекта? Или функции не обязательно объявлять с extern, та как они и так будут доступны в других файлах проекта?
zepto вне форума  
Непрочитано 27.03.2015, 08:37  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: Квалификатор extern

Сообщение от zepto Посмотреть сообщение
Да... Вижу тема получила продолжение в какую-то другую сторону, но это тоже хорошо!

Изначально я имел в виду компилятор языка Си для AVR, который в Atmel Studio 6.2
Кстати, кто-нибудь знает, что там за компилятор?
Компилятор, если я не ошибаюсь, использует стандарт языка С99, так как позволяет определять переменную прямо в цикле for(uin8_t i=0, i‹10, i++){} Поправьте, если не так.

И все-таки, вот если я вижу что в .с файле программист определил переменную или функцию с extern, то что это означает? То что программист "учился" по урокам от Александра Писанеца?

И я правильно буду делать, если буду объявлять в заголовочном файле функции и переменные с extern, если мне их надо будет использовать в других файлах проекта? Или функции не обязательно объявлять с extern, та как они и так будут доступны в других файлах проекта?
Квалификатор extern для функции в настоящее время практически ничего не означает. Просто сейчас используется понятие прототипа (prototype) функции. Когда K&R создали первый стандарт языка, такого понятия не существовало. Что касается переменных, то квалификатор extern сообщает компилятору информацию о данной переменной (ее тип, размерность и т.д.) без необходимости выделения под нее памяти. Для сравнения, в обычной книжной библиотеки имеется каталог с книжными карточками, в которых описаны данные о книге (название, автор, место нахождения книги...). Сами книги находятся в других местах. Можно ходить самому среди полок с книгами и выискивать нужную книгу. А можно сделать выписку с карточки и отдать ее дежурному библиотекарю. Тогда вы сможете получить нужную вам книгу гораздо быстрее.
Компилятор в AVRstudio - AVR GCC.
Bill вне форума  
Непрочитано 27.03.2015, 09:08  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,924
Сказал спасибо: 2,543
Сказали Спасибо 11,821 раз(а) в 5,927 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Квалификатор extern

Сообщение от zepto Посмотреть сообщение
И все-таки, вот если я вижу что в .с файле программист определил переменную или функцию с extern, то что это означает? То что программист "учился" по урокам от Александра Писанеца?
Посмотрите, например, тут, а вообще - Гоголь его знает.
Многое зависит от реализации компилятора. Один понимает и без экстернов, другой брыкается.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 27.03.2015, 11:48  
gks5
Прописка
 
Регистрация: 31.10.2006
Сообщений: 149
Сказал спасибо: 15
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
gks5 на пути к лучшему
По умолчанию Re: Квалификатор extern

Обсуждение extern не может считаться полным без обсуждения static.
Щетаю, тема не раскрыта в полном объёме
gks5 вне форума  
Непрочитано 27.03.2015, 11:54  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Квалификатор extern

Угу! Осталось добавить volatile, приправить статьями о вреде их использования, и можно считать кашу из топора сваренной!
STM32F0 вне форума  
Непрочитано 27.03.2015, 12:15  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: Квалификатор extern

Сообщение от akegor Посмотреть сообщение
Многое зависит от реализации компилятора. Один понимает и без экстернов, другой брыкается.
Лично я таких "понимающих" компиляторов что-то не встречал. Пример можете привести?
Bill вне форума  
Непрочитано 27.03.2015, 12:24  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Квалификатор extern

Сообщение от STM32F0 Посмотреть сообщение
volatile, приправить статьями о вреде их использования
Какой вред может быть от использования volatile? О чём вы?
Их надо использовать там где они нужны. или нет?
_Артём_ вне форума  
Непрочитано 27.03.2015, 12:26  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,924
Сказал спасибо: 2,543
Сказали Спасибо 11,821 раз(а) в 5,927 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Квалификатор extern

Сообщение от Bill Посмотреть сообщение
Пример можете привести?
Не. Лениво искать и проверять. В целях единобезобразности просто применяю - и все дела. А требуют или нет - меня в энтом случАе не е... колышет.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
 

Закладки

Метки
avr-gcc, extern, язык си
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пара непонятных моментов по языку СИ kvark85 Embedd С 102 17.05.2013 23:43
struct & union в многофайловом проекте. picavr Микроконтроллеры, АЦП, память и т.д 20 25.02.2010 13:44


Часовой пояс GMT +4, время: 15:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot