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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 14.04.2011, 14:06  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Связь 3х файлов в проекте на С AVR Studio

Подскажите, как правильно сделать связь одного файла и другого:

define.c:
Код:
int a;
main.c :
Код:
#include "define.c"
#include "second.c"

void main(){
   a=1;
}
second.c:
Код:
#include "define.c"

void A(){
   a=2;
}
Пишет ошибку : переменная а redefine.
А если убрать включение #include "define.c" то ошибка: a - unknown
Как можно совместить 3 файла?
Реклама:
sanstan вне форума  
Непрочитано 14.04.2011, 14:12  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Связь 3х файлов в проекте на С AVR Studio

Сообщение от sanstan Посмотреть сообщение
Как можно совместить 3 файла?
Написав к ним заголовочные файлы.
Например такой:
Код:
// define.h
#ifndef DEFINE_H
#define DEFINE_H

extern int a;

#endif
И вместо #include "define.c" писать #include "define.h"
По аналогии сделать так с каждым файлом.
Хотя для приведенного Вами примера хватит и этого одного. #include "define.h" добавить в начало main.c и second.c
Си файлы не инклюдятся, а подключаются к проекту.
kison вне форума  
Непрочитано 14.04.2011, 16:51  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Связь 3х файлов в проекте на С AVR Studio

По-моему, вполне достаточно описать переменную "int avar" в одном из сишных файлов, а во всех остальных файлах, где предполагается её использование, добавить описание "extern int avar".

Ну и убрать инклюд си-файлов, как было сказано.
=GM= вне форума  
Непрочитано 14.04.2011, 17:13  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Связь 3х файлов в проекте на С AVR Studio

Сообщение от =GM= Посмотреть сообщение
По-моему, вполне достаточно описать переменную "int avar" в одном из сишных файлов, а во всех остальных файлах, где предполагается её использование, добавить описание "extern int avar".
Вот чтоб так не делать и придуманы заголовочные файлы. Пример - переменная используется в 72 файлах. Добавили туда через extern аж 72 строки. Теперь нам понадобилось заменить ее тип на float - полезли все 72 extern-а редактировать. Ну это как то непродуктивно. А с заголовочным файлом надо исправить только одну запись extern
kison вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги dosikus Делимся опытом 11242 29.12.2015 23:45
На WinAVR + AVR Studio c CVAVR Vetal-soft Embedd С 87 03.03.2013 20:31
Codevision AVR + AVR Studio помогите разобраться с отладкой Daget Микроконтроллеры, АЦП, память и т.д 24 07.03.2011 14:41
Вопрос по AVR Studio (Adress na) Langalec Микроконтроллеры, АЦП, память и т.д 8 17.01.2011 20:21
Помогите с прошивкой в AVR studio _grey_ Микроконтроллеры, АЦП, память и т.д 5 26.03.2010 21:59


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


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