Differenze tra le versioni di "C/Compilatore e precompilatore/Direttive"

Jump to navigation Jump to search
salvo prima che perdo tutto :-P
(salvo prima che perdo tutto :-P)
 
==={{IndexItem|#define}}<tt>#define</tt>===
La direttiva <tt>#define</tt> serve per definire {{IndexItem|macro}}macro. Sintassi:
#define nomemacro testomacro
 
Il testo può essere una {{IndexItem|costanti}}costante o un'{{IndexItem|espressioni}}espressione, anche parametrizzata:
==={{IndexItem|#undef}}<tt>#error</tt>===
<pre>
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
#define NUM 10
#define EXPR(a) (a)==6 ? 6 : 0
printf("%d\n", NUM);
printf("%d\n", EXPR(7));
return 0;
}
</pre>
Abbiamo trattato l'{{IndexItem|operatore ?}}operatore ? [[Linguaggio_C/Blocchi_e_funzioni/Blocchi_if_e_switch#L.27operatore_.3F|qui]].
 
==={{IndexItem|#if, #else, #elif ed #endif}}<tt>#if, #else, #elif ed #endif</tt>===
 
Queste direttive servono per la {{IndexItem|compilazione condizionale}}''compilazione condizionale''.
 
Esempio:
<pre>
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
#define NUM 10
#define EXPR(a) (a)==6 ? 6 : 0
#if NUM==10
printf("NUM è uguale a 10.\n");
#if EXPR(6)
printf("EXPR ha dato un risultato! %d\n", EXPR(6));
#else
printf("EXPR non ha dato alcun risultato!\n");
#endif
#elif NUM<10
printf("NUM è minore di 10: %d\n", NUM);
#else
printf("NUM è maggiore di 10 o non definito: %d\n", NUM);
#endif
return 0;
}
</pre>
 
==={{IndexItem|#include}}<tt>#include</tt>===

Menu di navigazione