www.elektronik.si
GNU C pomoč začetniku VIII

www.elektronik.si -> Linux, unix razprave

Avtor: vilkoKraj: Dragomer PrispevekObjavljeno: Pet Jan 13, 2012 2:16 pm    Naslov sporočila:  GNU C pomoč začetniku VIII
----------------------------------------------------------------------------
Ja že tako, da zna en norec več vprašati, kot sedem modrih odgovoriti.
Tako se spet obračam na vas z vprašanjem, ki tokrat ni življensko, saj lahko programiram tudi, ne da bi uporabil to možnost.

Naj pojasnim na primeru Bascom. Tam imam recimo stavek
#if k = 1
.. programska koda
#endif

kar pomeni, če je konstanta (ne variabla temveč konstanta) postavljena na 1, tedaj je pogoj izpolnjen in programska koda ki sledi do #endif se vgradi v program, sicer se ta del kode preskoči in prevajalnik tega dela (pozor! v času prevajanja programa!) sploh ne vgradi v program.

Zadeva pride prav v različnih primerih. Recimo definiram konstanto Test = 1, in potem prevajalnik vgradi v program vso kodo, ki sem jo napisal in služi le meni v pomoč pri testiranju, razni izpisi variable in poti, kako se program odvija, na primer. Ko je program testiran, tedaj postavim to isto konstanto na 0, ponovno prevedem, in teh testnih pripomočkov ni v programu.

Ali drug primer. Isti program želim imeti na dveh sličnih vezjih, a malo različnih.
Pri vezju 1 je recimo ledica na PortD.7, pri vezju 2 pa na PortC.7
In definiram alias za ledico v odvisnosti od konstante 'vezje'.

Koda:
Const vezje = 1
#if vezje = 1
ledica alias portd.7
#endif
#if vezje = 2
ledica alias porc.7
#endif


Prepričan sem, da se to da tudi v C-u, morda mi bo kdo od vas povedal, kako.
Kot rečeno, ni življensko pomembno, a bi rad vedel.

Pozdrav

Avtor: S53DZKraj: Ljubljana PrispevekObjavljeno: Pet Jan 13, 2012 2:35 pm    Naslov sporočila:  
----------------------------------------------------------------------------
uporabi #ifdef ali morda #if defined
konstanto moraš prej določiti s še enim pre-procesorskim ukazom: #define.

Avtor: vilkoKraj: Dragomer PrispevekObjavljeno: Pet Jan 13, 2012 3:01 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Hvala.
Takoj, ko sem dobil tvoj odgovor, sem šel malo guglat na C #if in našel veliko o preprocesorju.

Stran 1 od 1

Powered by phpBB © 2001,2002 phpBB Group