[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