Mikäköhän logiikka tässäkin on, kun käytetään #definea alussa niin siihen ei laiteta mitään yhtäsuuruusmerkkiä tms. määritettävän ja määritelmän väliin tai puolipistettä perään, kuten tässä
#define TRUE 1
#define FALSE 0
...
int done = 0;
while( done != TRUE ) {
...
}
C:een järjen juoksu
4
447
Vastaukset
Koska #define on esikääntäjän käyttöön ja sillä tehdään makroja. Se korvaa mitä tahansa tekstiä eikä kysee ole siis samasta asiasta kuin vakioiden tekeminen tai sijoittamisesta johonkin muutttujaan.
#define ISDONE while( done != TRUE )
..toimii myös.- Ma-ma-makro
Googlaa esikääntäjä tai preprocessor.
Esikääntäjälle voi tehdä mm. funktiontapaisia makroja, ja 'liimata' argumentteja (##-merkeillä). Makrot on osattava, koska niihin törmää muiden koodissa ja tietysti toisinaan on järkevää/pakollista väsätä omia. - Linux-rules
>#define TRUE 1
>#define FALSE 0
Laittaisin tuon mielummin näin:
#define FALSE 0
#define TRUE !FALSE- c c c
turvallisempi kaikissa tilanteissa. Kotitehtäväksesi jää, missä!
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 396915
- 323898
- 453280
- 342844
- 162662
- 372228
- 162176
- 372092
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons482047- 381963