Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: extern var
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
sergey sva
Как можно добраться до содержимого переменной, которая компилируется и объявлена в другом файле.
Есть четыре файла adc.c adc.h main.c main.h
В adc.h записано так: extern int buf[10]; в adc.c int buf[10];
Компилируется сначала файл adc.c потом main.c
При выполнение кода adc.c данные запишутся в переменную buf, как можно получить эти данные в файле main.c?
MrYuran
Цитата(sergey sva @ Feb 27 2009, 15:12) *
При выполнение кода adc.c данные запишутся в переменную buf, как можно получить эти данные в файле main.c?

#include adc.h

smile3046.gif
блин, кавычки забыл...
#include "adc.h"
aaarrr
Дык все уже сделано.
Код
#include "adc.h"

int main(void)
{
    ...
    x = buf[y];
    ...
}
sergey sva
благодарю smile.gif
добавил #include adc.h в main.c заработало.
demiurg_spb
Это и называется подключение (логическое связывание) модулейsmile.gif
Код
#include "file.h" // подключаем файл из путей проекта
#include <file.h> //подключаем файл из путей библиотеки компилятора.
haker_fox
Цитата(demiurg_spb @ Feb 27 2009, 21:54) *
Это и называется подключение (логическое связывание) модулейsmile.gif
Код
#include "file.h" // подключаем файл из путей проекта
#include <file.h> //подключаем файл из путей библиотеки компилятора.

Позволю себе маааленькую добавочку сделать:
Код
#include <file.h>

Так мы можем не только библиотеки, поставляемые с компилятором, подключать, но и любые другие. Например свои. Для этого компилятору нужно лишь указать путь к ним. При этом мы избавляемся от таких неуклюжих записей
Код
#include "x:\myproject\libs\whats\file.h"
sergey sva
Вопрос на эту же тему. В проекте используется четыре файла adc.c adc.h main.c main.h ,
в adc.h объявлена переменная buf как extern unsigned char buf; в adc.c #include<adc.h> unsigned char buf;
в main #include<adc.h> компилятор переменную buf видит в main.c все работает, дальше по такому же принципу
добавил еще два фаила das.c das.h и добавил строчку в маке файл. В них тоже также объявляю переменную dataR
прикрепляю к main фаил das.h , компилятор эту переменную тоже видит в файле main. при компиляции ошибок нет,
только данные не передаются, то есть в этой переменной постоянно какие то цифры, не то что должно быть.
В файле das.c одна функция, которая по прерыванию от таймера записывает данные в переменную dataR.
Сделал принудительную запись в dataR = 10; по прерыванию, но когда считываю данные в файле маин там какието 255 или
210 ,все время меняется эта цифра. Вопрос понимаю, не конкретный, кто может знать что происходит в моих исходниках,
Просто может у кого была похожая проблема, или или порекомендуете что? yagarto GCC-4.3.2
Сергей Борщ
Цитата(sergey sva @ Mar 2 2009, 20:42) *
по прерыванию от таймера записывает данные в переменную dataR.
<Переменная объявлена как volatile> ? <показать код> : <искать по форуму volatile>
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.