Rozważ następujący kod:
POCZĄTEKPowyższy kod nie jest prawidłowym kodem C.
Ale następujący kod jest prawidłowy:
//Przykład 1.CPrzed kompilacją makro start, liczba całkowita, drukowana i koniec została zastąpiona ich wartością, a kod staje się prawidłowym kodem C. Możemy sprawdzić za pomocą następującego polecenia:
GCC -e Przykład 1.CTo polecenie wyświetli się po rozszerzeniu wszystkich makr.
Teraz zobaczymy różne typy makr:
1. Obiektowe makra:
Składnia:
#Define Macro_Name Macro_ValueJeśli makro przyjmuje więcej niż jedną linię, możemy to zrobić w następujący sposób:
#Define Macro_Name Macro_Value1 \To makro wygląda jak obiekt danych, dlatego ten typ makra nazywał Macro podobną do obiektu.
// Przykład2.CW Exapmle2.C, Max jest makro. Z wyjścia obserwujemy to Max jest zastąpiony jego wartością 200.
2. Makra podobne do funkcji:
Składnia:
#Define Macro_Name () Macro_Valuenazwa makro_namentu to zdefiniowana przez użytkownika nazwa makra. Para nawiasu musi postawić po nazwa makro_namentu. Nie jest dozwolone pomiędzy nazwa makro_namentu i nawias. Możemy również przekazywać argumenty w tego typu makra.
#Define Add (x, y) x+yTo makro wygląda jak wywołanie funkcji, dlatego ten typ makro nazywał makro podobną do funkcji.
// Przykład3.CW przykładzie3.C, Widzieliśmy, że w przeciwieństwie do funkcji C, makro zastępują tylko kod argumentami bez obliczania. Możemy więc przejść inny typ danych za pomocą tego samego makra.
Jeśli umieścimy przestrzeń między nazwą makro a nawiasem, działa tak samo jak makro podobne do obiektu. Poniżej C Przykład ilustruje to.
// Przykład4.CW przykładzie4.c, widzieliśmy, że makro dodaje się (x, y) x+y . To samo co makro podobne do obiektu.
3. Makro do wklejania tokenów:
W języku C ## Operator jest używany do wklejania tokenów. Korzystając z tego operatora, możemy połączyć dwa prawidłowe tokeny w jeden ważny token.
Przykład:
Jeśli spróbujemy tokować wklejanie, które nie generuje prawidłowego tokena, kompilator C daje błąd lub ostrzeżenie.
// Przykład6.CW Przykład6.C, Mamy komunikat o błędzie, ponieważ po kombinacji dwóch tokenów otrzymujemy nieprawidłowy token '52+'.
4. Makro do ciągnięcia:
W języku C # Operator służy do przekształcania parametru makro w stałą ciągów. Gdy operator # poprzedza parametrem makro, parametr przekształca się w literał ciąg. Stringowanie może być używane do makr obiektowych i funkcyjnych.
Przykład:
W Przykład7.C Mamy ciąg „Hello World” za pomocą makra stringizowania.
Wniosek:
Ten artykuł dowiedział się o wszystkich rodzajach makro Makra podobne do obiektu, Makra podobne do funkcji, Makro do wklejania tokenów, Makro do ciągnięcia i makro do stringowania w języku C. Teraz możemy bez wątpienia użyć makro w naszym programie C.