test di verificaDomanda
Qual è l'output di questo programma in linguaggio C?
immagine del test



1 / 5 domande



Vuoi visualizzarlo sul tuo sito?

#if ( linguaggio C )

Nel linguaggio C la direttiva #if #endif è usata nella preprocessione del codice sorgente come condizione di controllo.

Sintassi

#if [espressione]
codice
#endif

Se l'espressione condizionale è vera, il preprocessore scrive il blocco di codice contenuto tra #if e #endif. Viceversa, lo esclude.

Esempio

La direttiva #define definisce un identificatore #VERS.

La seconda verifica se VERSIONE è minore di 5.

  1. #include <stdio.h>
  2. int main() {
  3. printf("controllo versione");
  4. #if (VERS<5)
  5. printf("versione non aggiornata");
  6. #endif
  7. }

Se minore di 5, il preprocessore aggiunge al codice sorgente la stampa del messaggio "versione non aggiornata".

  1. int main() {
  2. printf("controllo versione");
  3. printf("versione non aggiornata");
  4. }

Se uguale o maggiore di 5, il preprocessore salta alla direttiva #endif senza aggiungere nulla.

  1. int main() {
  2. printf("controllo versione");
  3. }

Dopo la preprocessione il codice sorgente viene compilato dal compilatore per creare l'oggetto eseguibile.

Attenzione. Le istruzioni condizionali #if nella preprocessione non vanno confuse con le strutture condizionali if del programma. Il preprocessore è elaborato prima della compilazione per modificare il codice sorgente del programma. Le istruzioni if else del programma, invece, sono elaborate durate l'esecuzione del programma compilato.

La clausola #elif

Nella preprocessione la clausola #elif aggiunge delle espressioni condizionali alla struttura di controllo.

#if (espressione1)
blocco1
#elif (espressione2)
blocco2
#elif (espressione3)
blocco3
#endif

La condizione 2 è verificata soltanto se l'espressione 1 è falsa.

La condizione 3 è verificata soltanto se le espressioni 1 e 2 sono false.

Nota. Non c'è limite al numero delle componenti #elif in una struttura condizionale.

La clausola #else

Nella preprocessione la clausola #else è il blocco di codice alternativo alla struttura #if.

Si attiva soltanto se le altre condizioni di controllo sono false.

#if (espressione1)
blocco1
#elif (espressione2)
blocco2
#elif (espressione3)
blocco3
#else
blocco4
#endif

Nel codice precedente il blocco 4 è elaborato soltanto se le espressioni 1, 2 e 3 sono false.

Esempi pratici

Alcuni esempi pratici della direttiva #if

Esempio 1

La struttura di controllo verifica il valore assegnato all'identificativo VERS.

  1. #include <stdio.h>
  2. int main() {
  3. printf("controllo versione");
  4. #if VERS<5
  5. printf("versione non aggiornata");
  6. #elif VERS == 5
  7. printf("versione 5.0");
  8. #elif VERS == 6
  9. printf("versione 6.0");
  10. #else
  11. printf("versione non riconosciuta");
  12. #endif
  13. }

Il valore di VERS è precedentemente assegnato tramite la direttiva #define del preprocessore.

Se VERS è minore di 5, il preprocessore invia al compilatore il seguente codice sorgente:

  1. int main() {
  2. printf("controllo versione");
  3. printf("versione non aggiornata");
  4. }

Se VERS è uguale a 5

  1. int main() {
  2. printf("controllo versione");
  3. printf("versione 5.0");
  4. }

Se VERS è uguale 6

  1. int main() {
  2. printf("controllo versione");
  3. printf("versione 6.0");
  4. }

Infine, se nessuna condizione si verifica, il preprocessore invia al compilatore il codice:

  1. int main() {
  2. printf("controllo versione");
  3. printf("versione non riconosciuta");
  4. }

https://www.okpedia.it/if-elif-else-endif-c


Segnala un errore o invia un suggerimento per migliorare la pagina


Il preprocessore C

Le direttive


FacebookTwitterLinkedinLinkedin