[elektro] MPLAB furcsaság

Móczik Gábor pm_levlista at progzmaster.hu
Mon Jan 7 12:54:33 CET 2013


2013.01.06. 17:58 keltezéssel, Ekati Bt. írta:
>> akkor láttam ilyet ha a C fájl nem külön objektumként fordult,
>> hanem csúnya módon includeolva volt a fő C fájlba
> Tényleg így van. De!!
> Mondjuk a főprogram legyen main.c. A másik delay.c.
> A projec ablakban a delay.c előbbre lesz mint a main.c,
> ezért azokat a változókat nem ismeri fel amelyeket a main.c-ben
> deklaráltam. Hogyan tudok ezen változtatni?
> A C18 simán megette ezeket a dolgokat.

Rossz gyakorlat.

Ne include-old be a C fájlokat egymásba.
Kell készíteni egy H (header) fájlt amiben a deklarációk szerepelnek 
"extern" megjelöléssel, és a H fájlt kell includeolni mindenhová, ahol 
használni akarod. A C fájlt pedig hozzá kell adni a projecthez.

A C fájl includeolása nem csak "bad practice", hanem ha több egységbe 
illesztesz be egy másik egységet, ha nincs static-ként deklarálva 
valami, akkor "redefined symbol" hibát kapsz.

Ha static-ként deklarálod, akkor meg kódméret növekedést okoz, ugyanaz a 
kód többször kerül lefordításra és a binárisban is többször jelenik meg.



More information about the Elektro mailing list