Только что создал новый проект... в нем 3 файла pp.h, pp.c, и main
код pp.h:
Код
#ifndef PP_H
#define PP_H
int constanta = 2;
int add_2(int a);
#endif
код pp.c:
Код
#include "pp.h"
int add_2(int a)
{
a = constanta;
return a;
}
код main.c:
Код
#include <at91sam7s128.h>
#include "pp.h"
int main(void)
{
int a;
a = 2;
a = add_2(a);
return a;
}
На всякий пожарный

, сам проект:
3.rar ( 61.5 килобайт )
Кол-во скачиваний: 64И тут тоже такое...
Цитата(Lotor @ Dec 22 2011, 11:47)

Т.е. Кеил виноват? В Protocol.h пишите
Код
extern int blablabla;
В Protocol.c делаете глобальную переменную
Код
int blablabla = 10;
Хидер подключаете к main.c или любому другому файлу, где хотите иметь доступ к blablabla.
Теперь понил...
Ну например visual studio не каких extern не требует...
Тут же есть моментик... открываю проект для stm32чётотам ) и там нет ни каких extern...есть обычное объявление глобальных переменных в разных файлах и никаких руганьев компилятора или линковщика....
Компилятор один.... в чём разница... настройки сравнил все... всё одинаково, за исключением камня...
Ну и там же для stm в проекте где есть прототипы функций...передними нет не каких extern, а в моём проекте для at91sam7s128 компилятор требует (точнее линковщик)... в чём может быть разница????
Сообщение отредактировал Xeon - Dec 22 2011, 09:02