Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
#endif<br />
#ifndef macro<br />
/*<br />
* questo codice viene considerato<br />
* solo se "macro" non è stata definita<br />
*/<br />
#endif<br />
valuta solo se il simbolo X è definito (nel senso di #define) o meno.<br />
In #if oltre a numeri, simboli definiti in precedenza e o<strong>per</strong>atori interi è possibile usare la<br />
forma “defined(X)”. Per evitare troppi livelli condizionali e troppi #endif si può usare #elif<br />
con il significato di “else if”. Per esempio, il seguente codice<br />
#ifdef X<br />
/* codice 1 */<br />
#else<br />
#ifdef Y<br />
/* codice 2 */<br />
#else<br />
#ifdef Z<br />
/* codice 3 */<br />
#endif<br />
#endif<br />
#endif<br />
diviene il più leggibile<br />
#ifdef X<br />
/* codice 1 */<br />
#elif Y<br />
/* codice 2 */<br />
#elif Z<br />
/* codice 3 */<br />
#endif<br />
Un esempio pratico è il seguente<br />
#if SYSTEM == MSDOS<br />
#define HDR "msdos.h"<br />
#elif SYSTEM == SYSV<br />
/* elif equivale ad un else if */<br />
#define HDR "sysv.h"<br />
#else<br />
#define HDR "default.h"<br />
#endif<br />
#include HDR<br />
È possibile utilizzare la direttiva #if <strong>per</strong> eliminare porzioni di codice senza cancellarle (in fase<br />
di debugging <strong>per</strong> esempio):<br />
112