#ifdef, #ifndef, ## c preprocessor

#ifdef, #ifndef, ## c preprocessor

Nella lingua C esistono diversi comandi preprocessori. I comandi #define e #undef sono i comandi preprocessore più importanti presenti nella lingua C. Ognuno di essi ha alcune caratteristiche uniche. In questo argomento, discuteremo in dettaglio sui comandi #ifdef, #ifndef e ##.

Il concetto di preprocessore

Prima di discutere i comandi #IFDEF, #IFNDEF e ##, dobbiamo sapere sul preprocessore.

Una serie di programmi eseguiti prima che venga compilato il nostro programma e si chiama preprocessore. La funzione principale del preprocessore è solo osservare le dichiarazioni simboliche #. Il resto delle linee rimane invariato dal processore. Questo # ha un nome univoco nella lingua C: la direttiva preprocessore. La funzione di questa direttiva preprocessore è quella di dare una direzione a quella particolare affermazione. Il # è seguito dal comando preprocessore.

Diagramma preprocessore

Il preprocessore risolve tutte le linee #. Significa che non è rimasta alcuna linea con # compilato dal compilatore.

Ora discuteremo dei comandi #IFDEF, #IFNDEF e ## in dettaglio. Questi comandi preprocessore elencati sono:

Comandi preprocessore

  • #if, #else, #elif e #endif
  • #ifdef e #ifndef
  • ##

Esempio di programmazione 1

In questo esempio di programmazione, vedremo l'applicazione del comando preprocessore #if, #else.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#includere
#Define Country India
int main ()

#if country == Pakistan // Utilizzo di # If Command.
Printf ("pakistani rupes \ n");
#elif country == Bangladesh
printf ("taka \ n");
#elif country == Nepal
printf ("nepalesi rupie \ n");
#else // usando il comando # else.
Printf ("indiani rupie \ n");
#endif // country
restituzione 0;

Produzione

Spiegazione

In quel particolare linguaggio di programmazione, diamo un esempio di #if, #else. La #if non ha bisogno di una parentesi (). Viene utilizzato per eseguire l'unica affermazione vera. Altrimenti, useremo #elif per impostare diversi tipi di condizioni nel codice di programmazione. Quando utilizziamo la condizione se vera, allora non verrà controllata alcuna altra condizione e stamperà la giusta condizione nel nostro monitor.

Per il #if, è determinato se questa linea è rispettata o meno. #elif è buono come altro se.

Esempio di programmazione 2

Qui vedremo un altro esempio del comando #if, #else:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#includere
#define un comando 100 // preprocessor viene utilizzato qui.
#define b 0
#define c 10
int main (vuoto)

int a = 100, b = 0, c = 10;
#if a // # L'istruzione se viene utilizzata qui.
Printf ("valore di a è %d \ n", a);
#elif b
printf ("Valore di b è %d \ n", b);
L'istruzione #else // # else viene utilizzata qui.
Printf ("Valore di C è %d \ n", c);
#finisci se
restituzione 0;

Produzione

Spiegazione

In questo esempio di programmazione, vengono utilizzati #if e #else. In precedenza, abbiamo detto che questi comandi sono diversi dal normale if-else utilizzato nel programma. Questo comando viene eseguito dal processore ed esegue prima della compilation. Ma solo la vera affermazione viene eseguita e pronta a compilare.

1
#ifdef, #ifndef macro

#ifdef è una macro. Se una macro è contenuta a un'istruzione #define, il resto dell'istruzione deve essere compilato dal compilatore.

#ifndef è anche una macro come #ifdef.

Esempio di programmazione 3

In questo esempio di programmazione, vedremo l'applicazione del comando preprocessor, #ifdef, #ifndef:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#includere
#Define Country "India"
int main ()

#ifdef country // utilizzando il comando # ifdef.
printf ("%s è un grande paese", paese);
#endif // country
#ifndef country // utilizzando il comando # ifndef.
printf ("I Love My Nation");
#endif // country
restituzione 0;

Produzione

Spiegazione

In questa particolare programmazione, diamo un esempio di #ifdef, #ifndef. ##If e #else sono diversi dal normale se altro che vengono utilizzati normalmente nella lingua C. Sono eseguiti dal preprocessore per decidere quale condizione sarà pronta per la compilazione. Viene utilizzato per eseguire solo una vera dichiarazione. Altrimenti, useremo #elif Per impostare diversi tipi di condizioni nel codice di programmazione. Quando lo utilizziamo se vera condizione, nessun'altra condizione verrà controllata e stamperà la giusta condizione nel nostro monitor.

#ifdef effettivamente usa se la macro è definita con qualsiasi sequenza di caratteri. Se la macro non è definita, allora #ifndef esecuzione. Qui, una macro viene utilizzata nel programma chiamato Paese. La macro Paese è definito con la sequenza dei caratteri denominata "India". Per questo, #ifDef esegue in questo programma.

Esempio di programmazione 4

In questo esempio di programmazione, vedremo un'altra applicazione del comando preprocessor #ifdef, #ifndef.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#includere
int main ()

int x = 0;
#ifdef Noinput // Utilizzo di # IfDef Command.
#altro
printf ("Immettere il valore della variabile x:");
scanf ("%d", & x);
#finisci se
printf ("valore di x è: %d \ n", x);
restituzione 0;

Produzione

Spiegazione

In quella particolare programmazione, diamo un esempio di #ifdef, #ifndef. Come ho accennato in precedenza, #ifDef in realtà utilizza se la macro è definita con qualsiasi sequenza di caratteri. Se la macro non è definita, allora #IFNDEF. Qui, una macro viene utilizzata nel programma chiamato Noinput. Quindi, esegue e pronto per la compilazione.

## operatore

Il ## è anche un operatore che viene risolto dal preprocessore. Con l'aiuto dell'operatore ##, possiamo concaterare facilmente due dichiarazioni o due stringhe.

Esempio di programmazione 5

In questo esempio di programmazione, vedremo l'applicazione del comando preprocessore ## operatore.

1
2
3
4
5
6
7
8
9
10
11
12
13
#includere
#define action (a, b) a ## b+a*b
int main ()

printf ("%d", azione (3,4));
restituzione 0;

Produzione

Spiegazione

In questo esempio di programmazione, utilizziamo l'operatore ## per concatenare due stringhe. Questo operatore è anche eseguito dal processore. In realtà concatena due stringhe.

Qui, l'espressione è data Azione (3, 4), ed è sostituito da a ## b + a * b = 34 + 3 * 4 = 34 + 12 = 46.

## Concatena i due operandi.

Conclusione

In questo articolo, abbiamo discusso del processore e dei preparati e eseguire i comandi preprocessore da parte del compilatore. Questi comandi preprocessore precedentemente discussi sono molto importanti per il complier, cosa che verrà compilata. Sulla base di queste cose, il nostro programma verrà eseguito.