Как все-таки правильно переменные в "С" (IAR) объявлять???
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
kamiur 28 июля 2003 г. 11:38
|
|
|
|
Надоело экспериментировать...
Хотелось бы иметь файл с глобальными описаниями и общими функциями:
...\common.c:
#include
void func(void){q++;}...\common.h:
#ifndef common_h
#define common_h
volatile char q;
void func(void);
#endif common_h
...\test.c:
#include
void main(void){
while(1){q++; func();}
}При линковке говорит:
Error[e27]: Entry "q" in module Test
(...\Test\Debug\Obj\Test.r90 ) redefined in module Common
(...\Test\Debug\Obj\Common.r90 )
Можно, конечно, во всех файлах common.h не включать, а переменные
и функции описывать как extern, но этих переменных и файлов в
проекте будет очень много.
Как все-таки правильно переменные объявлять???
Не судите строго за ламерский оффтопик, только начал на "С" с асма
переходить...
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Очень приятно это делает DAvE (+) — G}{OST (28.07.2003 13:22, 463 байт)
- Ответ: чтобы не возникало подобных вопросов (и дурацких бессмысленных споров), советую почитать Страуструппа. Там русским по белому написано, что следует и что не следует включать в *.h файлы. DASM по этому поводу глубоко прав (имеется в виду его совет внизу). — ... (28.07.2003 13:14, пустое)
- Я делаю так (ИАР): — MemoryTest (28.07.2003 11:46, 579 байт)
- совет. Пиши в хидере extern volatile char, включай этот хидер во все файлы, где она должны быть видна. Ну в одном из них, где она ближе всего по смыслу объяви её. Проблем не будет — DASM (28.07.2003 11:44, пустое)
- Скобки потерялись... Там в #include везде common.h было — kamiur (28.07.2003 11:41, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru