sergey sva
Feb 27 2009, 12:12
Как можно добраться до содержимого переменной, которая компилируется и объявлена в другом файле.
Есть четыре файла 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
Feb 27 2009, 12:19
Цитата(sergey sva @ Feb 27 2009, 15:12)

При выполнение кода adc.c данные запишутся в переменную buf, как можно получить эти данные в файле main.c?
#include adc.h
блин, кавычки забыл...
#include "adc.h"
aaarrr
Feb 27 2009, 12:20
Дык все уже сделано.
Код
#include "adc.h"
int main(void)
{
...
x = buf[y];
...
}
sergey sva
Feb 27 2009, 12:25
благодарю
добавил #include adc.h в main.c заработало.
demiurg_spb
Feb 27 2009, 13:54
Это и называется подключение (логическое связывание) модулей

Код
#include "file.h" // подключаем файл из путей проекта
#include <file.h> //подключаем файл из путей библиотеки компилятора.
haker_fox
Feb 27 2009, 14:34
Цитата(demiurg_spb @ Feb 27 2009, 21:54)

Это и называется подключение (логическое связывание) модулей

Код
#include "file.h" // подключаем файл из путей проекта
#include <file.h> //подключаем файл из путей библиотеки компилятора.
Позволю себе маааленькую добавочку сделать:
Код
#include <file.h>
Так мы можем не только библиотеки, поставляемые с компилятором, подключать, но и любые другие. Например свои. Для этого компилятору нужно лишь указать путь к ним. При этом мы избавляемся от таких неуклюжих записей
Код
#include "x:\myproject\libs\whats\file.h"
sergey sva
Mar 2 2009, 18:42
Вопрос на эту же тему. В проекте используется четыре файла 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
Сергей Борщ
Mar 2 2009, 18:56
Цитата(sergey sva @ Mar 2 2009, 20:42)

по прерыванию от таймера записывает данные в переменную dataR.
<Переменная объявлена как volatile> ? <показать код> : <искать по форуму volatile>