www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

GNU C pomoč začetniku VIII

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Linux, unix razprave
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.09
Kraj: Dragomer

PrispevekObjavljeno: Pet Jan 13, 2012 2:16 pm    Naslov sporočila:  GNU C pomoč začetniku VIII Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
S53DZ
Član
Član



Pridružen-a: Čet 28 Apr 2011 9:27
Prispevkov: 951
Aktiv.: 6.05
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jan 13, 2012 2:35 pm    Naslov sporočila:   Odgovori s citatom

uporabi #ifdef ali morda #if defined
konstanto moraš prej določiti s še enim pre-procesorskim ukazom: #define.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.09
Kraj: Dragomer

PrispevekObjavljeno: Pet Jan 13, 2012 3:01 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Linux, unix razprave Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 47 dni


Powered by phpBB © 2001, 2005 phpBB Group