[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