Macro to skrót, który oznacza jakiś kawałek kodu w języku programowania. Te makra pomagają uprościć i zmniejszyć kod, aby uniknąć redundancji i powtarzalnego kodowania. Tak, że błędy są również zmniejszone, które występują głównie z powodu powtarzanego kodowania. Główną zaletą w zakresie makr jest to, że konwertuje kod i tworzy bardziej czytelny program montażu.
Rozszerzenie makro
Makro zawiera nazwę, zestaw parametrów formalnych i organ kodu. Nazwa makro jest używana z zestawem parametrów i zastępowana przez jakiś kawałek kodu generowanego przez jego nadwozie. To tworzy makro rozszerzenie. Pozwala to programistowi na tworzenie i definiowanie pseudo operacji, pożądanych operacji oraz tych, które nie są wdrażane jako instrukcje procesora. Macro ma określoną jakość, w której automatycznie pisze program. Nazwa makro jest napisana jako słowo kluczowe w kodzie. Działa jak wywołanie tego konkretnego makra, podobnie jak wywołanie funkcji. Następnie ta nazwa jest zastąpiona innym kodem ciała makro, jak opisaliśmy powyżej. Ta wymiana wywołania przetworzoną kopią jest rozszerzeniem połączenia makro. I jest używany zarówno w C, jak i C ++.
Po zdefiniowaniu makra nie możemy go na nowo zdefiniować do innej wartości bez usunięcia pierwszej oryginalnej definicji. Ale można na nowo zdefiniować makro z tą samą definicją już zdefiniowanych makr. Dyrektywa #UNDEF jest odpowiedzialna za usunięcie definicji makra. Po usunięciu definicji możemy teraz na nowo zdefiniować makro inną wartością.
Makra w c++
Istnieją dwa typy:
Makra podobne do obiektu
Makra obiektowe nie biorą żadnego argumentu. Są to identyfikatory, które są zastąpione wartością. Są one najczęściej używane do reprezentowania wartości liczbowych i stałych.
#definicja PL 3.17
PL to nazwa makra, która zostanie zastąpiona wartością 3.17.
Makra podobne do funkcji
Tego rodzaju makra mogą akceptować argumenty. Te makra wyglądają jak wywołanie funkcji. Na przykład weź przykład, w którym Max to nazwa makra.
#definicja max (a, b) ((a)<(b)?(a): (b))
Makra zwykle nie generują wywołań funkcji.W C ++ preferowane są funkcje wbudowane.
Predefiniowane makra
Kompilator Microsoft C/C ++, który ma predefiniowane makra MSVC, które zależą od języka C ++, celu kompilacji i opcji kompilatora. MSVC obsługuje predefiniowane makra preprocesorowe, które są wymagane przez standardy ANSI/ISO C99. Te predefiniowane makra nie używają żadnych argumentów i nie można ich na nowo zdefiniować.
Wiele predefiniowanych makr można użyć w kodach źródłowych C/C ++. Niektóre z nich są tutaj opisane, które są najczęściej używane.
__Data__
Data kompilacji programu w pliku jest reprezentowana przez tę funkcję makro. Data jest ciągiem dla formatu roku miesiąca i jest stałą wartością. Ten typ makro jest zawsze zdefiniowany.
__Czas__
Przedstawia czas na tłumaczenie jednostki, która jest wstępnie przetwarzana. Podobnie jak do tej pory, ma określony format, w którym jest napisane godziny: minuty: sekundy, w taki sam sposób, jak czas jest zwracany.
Ten typ makro jest również zawsze definiowany.
__Plik__
To reprezentuje nazwę bieżącego pliku. Rozszerza się na dosłowny ciąg znaków. To zapewnia, że ścieżka prowadząca do pliku jest wyświetlana. Jest to zawsze zdefiniowane makro.
__Linia__
Reprezentuje numer linii w formacie liczb całkowitych bieżącego źródła. To makro jest zdefiniowane jak inne, a jego wartość jest zmieniana za pomocą #line.
Teraz podkreślimy kilka przykładów funkcji makro __line__c ++.
__Linia__
Aby dowiedzieć się o działaniu tego makra, podaliśmy przykład. Po pierwsze, używana jest biblioteka dla strumienia wejściowego i wyjściowego. Następnie użyliśmy dziennika błędów funkcji, która utrzymuje dziennik błędów. Ma parametr do zaakceptowania wiersza w formie ciągu i wiadomości. Ta funkcja wyświetli numer wiersza z komunikatem przekazanym z głównego programu na makra.
#Define Log (MSG) ERRORLOG (__line__, msg)
Następnie zdefiniowaliśmy makro. To zaakceptuje ciąg linii wiadomości z głównej funkcji, która przekazała jako argument, gdy wywołanie tego makra jest wywoływane. I podobnie funkcja dziennika błędów jest wywoływana z Makro Line i komunikatem jako parametry. Plik zostanie zapisany z rozszerzeniem .C plik kodu źródłowego. Ponieważ musimy zobaczyć wyniki platformy Linux, przejdź do terminalu i zastosuj polecenia, aby skompilować i wykonać plik. Użyj kompilatora G ++ dla C++.
$ g ++ -o f f.C
$ ./F
Możesz zobaczyć, że nawet w przypadku przestrzeni numer linii jest identyfikowany za pomocą makra linii. Z tego przykładu widziałeś funkcjonalność makro __line__. Ale w następnym przykładzie wszystkie makra są wspólnie w programie. Użyliśmy „cout” do drukowania linii. Każda linia zawiera inny makro, a ta wartość jest wyświetlana. Na przykład, w przypadku daty, której użyliśmy:
STD :: Cout << ("Date :%s\n" , __Date) << std ::endl;
Teraz zobaczymy wyjście. Możesz zobaczyć, że nazwa pliku, data kompilacji, godzina kompilacji i bieżący numer linii są wyświetlane bardzo skutecznie za pomocą jednego kawałka kodu dla każdego makra.
Użycie/zalety makr
Wniosek
„__line__c ++ makro” to artykuł napisany tak, aby rozwinąć podstawowe funkcjonalność makra poprzez opisanie typów, a także predefiniowanych makr i kolejnych ich typów. Wszystkie te funkcje są wyjaśnione za pomocą przykładu. Makra można łatwo zaimplementować i wymagają mniej czasu w kompilacji kodów. Funkcje te są zaprojektowane przez programistów, którzy chcą tworzyć innowacje i warunki za pomocą małego kodu w programie źródłowym podstawowym. W tym celu artykułu towarzyszą zastosowania makro w kodzie źródłowym i opisuje, w jaki sposób są one korzystne w niektórych aspektach.