Importowanie zmiennej z pliku nagłowkowego

0

Witam.
Mam problem z plikiem nagłówkowym.

plik nagłówkowy, chodzi mi o zmienną ticks.

#ifndef __IRQ_HANDLER__
#define __IRQ_HANDLER__
/******************************************************************************
 * makro __cplusplus pozwala uzyc procedury obslugi przerwan w programie
 * napisanym w C++
 * Jest ono automatycznie ustawiane jezeli plik ma rozszerzenie cpp, cc, cxx
 ******************************************************************************/
#ifdef __cplusplus  

volatile tU32 ticks = 0;
extern "C" {
#endif
void interrupt2(void);
#ifdef __cplusplus
}
#endif


#endif //__IRQ_HANDLER__

Nastepnie includuję nagłówegdo plik .c
Jednak program wyrzuca błąd 'ticks' undeclared first use in this function.
Niestety tej zmienne bede również potrzebował w innym pliku, ale na razie nie mogę jej używać w tym a co dopiero w innym.

#include <lpc2xxx.h>
#include "interrupt.h"

void interrupt2(void) {
	ticks++;
	T1IR = 0xff;
	VICVectAddr = 0x00;
}

Widzicie jakiś błąd ?
Kombinowałem również z 'extern' jednak z marnym skutkiem.

0

Kiedyś miałem podobny problem, próbowałem na różne sposoby.
Korzystałem wtedy z IDE Code::Blocks.
Okazało się, że plik nagłówkowy nie był w tym samym projekcie.

Może tutaj jest to samo?
W sensie może pliki nie są w tym samym katalogu lub nie są w tym samym projekcie.

Jeżeli zmienna jest jako globalna to musisz ją zadeklarować "extern"

0

Zmiennych nie wrzuca się do plików nagłówkowych, tam ew externy, ale to też nieładne i jak ci się trochę projekt rozrośnie i pomyślisz choćby o wielowątkowości, to doprowadzi tylko do kłopotów...

Więc lepiej - wszystkie operacje na zmiennej ticks opisz w pliku c, gdzie zadeklarujesz tą zmienną. W pliku nagłówkowym natomiast odpowiednie metody udostępnij, które będą zawiadywały tą zmienną.

1 użytkowników online, w tym zalogowanych: 0, gości: 1