#ifdef, #ifndef, ## C preprocesor

#ifdef, #ifndef, ## C preprocesor

W języku C istnieje kilka poleceń preprocesor. Polecenia #Define i #undef są najważniejszymi poleceniami preprocesorami obecnymi w języku C. Każdy z nich ma kilka unikalnych funkcji. W tym temacie szczegółowo omówimy polecenia #IFDEF, #IFNDEF i ##.

Koncepcja preprocesora

Zanim omówimy polecenia #IFDEF, #IFNDEF i ##, musimy wiedzieć o preprocesor.

Zestaw programów wykonanych przed opracowaniem naszego programu i nazywa się to preprocesorem. Główną funkcją preprocesora jest jedynie obserwowanie # symbolicznych stwierdzeń. Reszta linii pozostaje niezmieniona przez procesor. Ten # ma unikalną nazwę w języku C: dyrektywa preprocesor. Funkcją tej dyrektywy preprocesor. Po # następuje polecenie preprocesor.

Preprocesor Schemat

Preprocesor rozwiązuje wszystkie linie #. Oznacza to, że nie ma linii z #, która jest kompilowana przez kompilator.

Teraz omówimy szczegółowo o poleceniach #IFDEF, #IFNDEF i ##. Te wymienione polecenia preprocesor to:

Polecenia preprocesor

  • #if, #else, #Elif i #endif
  • #ifdef i #ifndef
  • ##

Przykład programowania 1

W tym przykładzie programowania zobaczymy zastosowanie polecenia preprocesor #if, #Else.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#włączać
#definicja kraju Indie
int main ()

#if country == Pakistan // za pomocą # if polecenie.
Printf („Pakistani Rupees \ n”);
#elif country == Bangladesz
printf („Taka \ n”);
#elif country == Nepal
printf („nepali rupii \ n”);
#Else // za pomocą polecenia # else.
Printf („Indian Rupees \ n”);
#endif // kraj
powrót 0;

Wyjście

Wyjaśnienie

W tym konkretnym języku programowania podajemy przykład #if, #else. #If nie potrzebuje żadnego () nawiasu. Służy do wykonania jedynej prawdziwej instrukcji. W przeciwnym razie użyjemy #Elif do ustawienia różnych rodzajów warunków w kodzie programowania. Kiedy użyjemy prawdziwego warunku if, żaden inny warunek nie zostanie sprawdzony i wydrukuje odpowiedni stan w naszym monitor.

W przypadku #if jest ustalane, czy ta linia jest przestrzegana, czy nie. #elif jest tak dobry jak inaczej, jeśli.

Przykład programowania 2

Tutaj zobaczymy kolejny przykład polecenia #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
#włączać
#definicja polecenia preprocesor 100 // jest używane tutaj.
#Define B 0
#definicja c 10
int Main (void)

int a = 100, b = 0, c = 10;
#if a // # Jeśli instrukcja jest używana tutaj.
Printf („Wartość a is %d \ n”, a);
#elif b
printf („Wartość b to %d \ n”, b);
#Else // # inaczej jest używany tutaj.
Printf („Wartość C to %d \ n”, c);
#endif
powrót 0;

Wyjście

Wyjaśnienie

W tym przykładzie programowania używane są #if i #else. Wcześniej powiedzieliśmy, że te polecenia różnią się od normalnego ELSE IF, używanego w programie. To polecenie jest wykonywane przez procesor i wykonuje się przed kompilacją. Ale tylko prawdziwa instrukcja jest wykonywana i gotowa do skompilowania.

1
#ifdef, #ifndef makra

#ifdef to makro. Jeśli jakikolwiek makro jest zawarty w instrukcji #Define, reszta instrukcji musi zostać skompilowana przez kompilator.

#ifndef to także makro jak #ifdef.

Przykład programowania 3

W tym przykładzie programowania zobaczymy zastosowanie polecenia preprocesor, #IFDEF, #IFNDEF:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#włączać
#określić kraj „Indie”
int main ()

#ifdef country // za pomocą # IFDEF Command.
printf („%s to wielki kraj”, kraj);
#endif // kraj
#ifndef country // za pomocą # ifndef polecenie.
printf („Kocham mój naród”);
#endif // kraj
powrót 0;

Wyjście

Wyjaśnienie

W tym konkretnym programowaniu podajemy przykład #ifdef, #ifndef. #If i #Else różnią się od normalnych, jeśli inaczej są używane normalnie w języku C. Są one wykonywane przez preprocesor w celu podjęcia decyzji, który warunek będzie gotowy do kompilacji. Służy do wykonywania tylko prawdziwego instrukcji. W przeciwnym razie użyjemy #elif Aby ustawić różne rodzaje stanów w kodzie programowania. Kiedy użyjemy tego, jeśli prawdziwy warunek, żaden inny warunek nie zostanie sprawdzony i wydrukuje odpowiedni stan w naszym monitor.

#ifdef faktycznie używa, jeśli makro jest zdefiniowane za pomocą jakiejkolwiek sekwencji znaków. Jeśli makro nie jest zdefiniowane, to #ifndef wykonuje. Tutaj w programie wykorzystywane jest makro kraj. Makro kraj jest zdefiniowany za pomocą sekwencji znaków o nazwie „Indie". W tym celu #IFDEF wykonuje się w tym programie.

Przykład programowania 4

W tym przykładzie programowania zobaczymy inną aplikację polecenia preprocesor #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
#włączać
int main ()

int x = 0;
#ifdef noinput // za pomocą polecenia # ifdef.
#w przeciwnym razie
printf („Wprowadź wartość zmiennej x:”);
Scanf („%d” i x);
#endif
printf („Wartość x to: %d \ n”, x);
powrót 0;

Wyjście

Wyjaśnienie

W tym konkretnym programowaniu podajemy przykład #ifdef, #ifndef. Jak wspomniałem wcześniej, #ifdef faktycznie używa, jeśli makro jest zdefiniowane za pomocą dowolnej sekwencji znaków. Jeśli makro nie jest zdefiniowane, to #IFNDEF wykonuje. Tutaj w programie wykorzystywane jest makro BRAK WEJŚCIA. Tak więc wykonuje i jest gotowy do kompilacji.

## Operator

## jest również operatorem, który jest rozwiązywany przez preprocesor. Za pomocą ## Operator możemy łatwo połączyć dwa stwierdzenia lub dwa ciągi.

Przykład programowania 5

W tym przykładzie programowania zobaczymy zastosowanie komendy preprocesor ##.

1
2
3
4
5
6
7
8
9
10
11
12
13
#włączać
#definicja akcji (a, b) a ## b+a*b
int main ()

printf („%d”, akcja (3,4));
powrót 0;

Wyjście

Wyjaśnienie

W tym przykładzie programowania używamy operatora ## do połączenia dwóch ciągów. Ten operator jest również wykonywany przez procesor. Faktycznie łączy dwa struny.

Tutaj wyrażenie jest podane Działanie (3, 4), i jest zastąpiony przez A ## B + A * B = 34 + 3 * 4 = 34 + 12 = 46.

## połącz dwa operandy.

Wniosek

W tym artykule omówiliśmy procesor i gotowe do kompilacji i wykonaliśmy polecenia preprocesora przez kompilator. Te wcześniej omawiane polecenia preprocesor są bardzo ważne dla kompilowania, które będą skompilowane. Na podstawie tych rzeczy nasz program zostanie wykonany.