[elektro] MPLAB C30 linker

Móczik Gábor pm_levlista at progzmaster.hu
Fri Dec 16 20:14:50 CET 2011


2011.12.16. 18:51 keltezéssel, Ferenc Toth írta:
> Sziasztok.
> Mondjátok meg légszi,hogyan kell ...vagy hogy szoktátok azt megoldani ha pl
> nekem van sok konstansom ,amiket szeretek eggyütt tartani,mert a hitech-nél
> megszoktam .Csinálok egy header filet amibe gyakorlatilag az összes
> konstanst ,meg a változóimat beleteszem és minden eggyes c filéhez hozzá
> includolom.
> Ha ezt a C30ban teszem meg akkor azt mondja ,hogy többszörösen definiáltam a
> változót meg a tömböt...Kínomban csináltam mindegyikhez egy headert  és ha

Csinálsz egy headert, amiben fel van sorosva az összes _deklaráció_.

Azokhoz, amikhez _definíció_ is szükséges, tehát pl. egy tömbnél fel 
kell sorolni az initializereket, azt egy C fájlba kell tenni, és hozzá 
kell fordítani a projekthez.

Nem árt tudni, hogy valódi konstans csak az, amit makróval definiálsz, 
mint a lenti példában. A const módosítóval deklarált változók a RAM-ban 
tárolódnak és futásidőben értékelődnek ki. Közvetlenül nem módosíthatók, 
de pointer arithmetikán keresztül simán, type cast-tal esetleg kapsz egy 
warning-ot.

common.h
----------------------------
#ifndef __COMMON_H__
#define __COMMON_H__

#define CONST_1    123
#define CONST_2    444

unsigned char some_data[4];

#endif
----------------------------


common.c
----------------------------
#include "common.h"


unsigned char some_data[4] = { 111, 222, 333, 444 };

----------------------------



More information about the Elektro mailing list