C rejtelmek

vajk fekete halaloszto at yahoo.co.uk
Tue Feb 27 22:25:14 CET 2007


ha tenyleg az a problema, hogy a headerben valtozot akarsz definialni, akkor a rendes megoldas:

1. a tipust a headerben definialod
2. a valtozot a headerben definialod extern-kent
3. minden .c fileban amiben hasznalni akarod a valtozot, includeolod a headert. 
4. a valtozot igazibol, nem extern-kent egyetlen .c fileban definialod. ezt a file tulajdonkeppen egy lib.

a valtozo valami szuper globalis valtozo ugye. a fizikai helyfoglalasa a 4.-ban tortenik, a lenyeg hogy az a modul a vegen hozza legyen linkelve, hogy legyen cime es memoriaja) a valtozonak, egyszer. a header pedig biztositja, hogy minden fileban, amiben hivatkozol a valtozora, ismert legyen a tipusa, es tudjuk hogy majd lesz olyan modul ahol a cimke fel van oldva.

legyszi szolj, hogy tenyleg ez-e a problema. kicsit elmeleti a tudasom a temaban, c-ben tobb mint 10 eve nem programoztam.

vajk

----- Original Message ----
From: Moczik Gabor <pm at progzmaster.hu>
To: elektro at tesla.hu
Sent: Tuesday, 27 February, 2007 9:58:55 PM
Subject: Re: C rejtelmek

Balla Zoltán wrote:
>>pl. types.h file-t hozz letre:
>>
>>tartalma:
>>
>>typedef struct Bitmezo{
>>    unsigned Bit0:1;
>>    unsigned Bit1:1;
>>}KK_type;

Szerintem ez az altalanos megoldas:
Ha ez a struktura valamihez kotodik, akkor a valami.h -ba:

typedef struct {
    unsigned ...
} Bitmezo;

extern Bitmezo KK;

VAGY

struct Bitmezo {
   ...
};

extern struct Bitmezo KK;

majd a valami.c -ben:

Bitmezo KK;

(vagy struct Bitmezo...)

Utana ha valahol kell a KK valtozo, akkor a valami.h-t kell include-olni.

> de a szerencsetlen MpLab 
> IDE nem kinalja fel automatikusan a struktura tagok valasztasi lehetoseget, 
> es igy ertelmet vesziti az egesz.

Miert is, mire kell ez?

> A megszakitasi problemaval meg talalkozott senki sem ?

En hitech C-ben hasznalok 2 szintu megszakitast, bar ott asszem maskepp 
mukodik, mivel csak ilyen jellegu deklaracio kell:

void interrupt isr_hi(void)
{

}

void interrupt low_priority isr_lo(void)
{

}

-- 
((( Móczik Gábor  )))--((( pm -> @ -> progzmaster -> . -> hu  )))
((( Skype: moczik )))--((( Website: http://www.progzmaster.hu )))

-----------------------------------------
          elektro[-flame|-etc]







	
	
		
___________________________________________________________ 
New Yahoo! Mail is the ultimate force in competitive emailing. Find out more at the Yahoo! Mail Championships. Plus: play games and win prizes. 
http://uk.rd.yahoo.com/evt=44106/*http://mail.yahoo.net/uk 


More information about the Elektro mailing list