|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: 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 _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
S53DZ Član
Pridružen-a: Čet 28 Apr 2011 9:27 Prispevkov: 951 Aktiv.: 6.01 Kraj: Ljubljana
|
Objavljeno: 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. |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: 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. _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 73 dni
Powered by phpBB © 2001, 2005 phpBB Group
|