Autor:
Dondu
Kurs języka C:
Spis treści
Preprocesor, to proces wchodzący w skład całego
procesu kompilacji programu. Proces ten ma przygotować
właściwy kod C, który będzie podlegał kompilacji.
Ale o co chodzi?!
Przykład 1
Wyobraź sobie sytuację, w której masz program, z którego chciałbyś zrobić wersję demonstracyjną mającą pewne ograniczenia. Możesz skopiować pełną wersję i usunąć na stałe te fragmenty, których nie chciałbyś, by były w wersji demonstracyjnej programu.
W ten sposób masz dwie różne wersje źródłowe. Skompilujesz obie i hulaj dusza!
A co gdy będziesz musiał poprawić fragment programu, który jest zarówno w wersji pełnej jak i demonstracyjnej? Będziesz musiał dokonać poprawek w obu źródłach. Koszmar!!!
Ratunek tkwi w Preprocesorze
I tutaj z pomocą przychodzi nam
preprocesor, oferując zestaw dyrektyw oraz poprzedzając proces właściwej kompilacji dodatkowym procesem przygotowującym właściwy kod C.
Używając dyrektyw preprocesora, możesz więc tak napisać program, że z jednego kodu źródłowego będziesz mógł wygenerować zarówno kod pełnej wersji programu jak i demonstracyjnej, a ewentualne poprawki kodu będziesz już wykonywać tylko w jednym kodzie. Genialne!
Przykład 2
W mikrokontrolerach często piszemy programy na różne mikrokontrolery tej samej rodziny. Często też w nowych projektach wykorzystujemy napisane wcześniej fragmenty programów.
Mając możliwość korzystania z preprocesora, możemy tak napisać program, że łatwo zmienimy podłączenie np. wyświetlacza LCD do innych pinów tego samego lub innego mikrokontrolera. To zaoszczędza czas potrzebny na dokonywanie zmian w wielu liniach programu.
Powyższe przykłady, to oczywiście tylko część z wielu możliwości jakie daje nam Preprocesor. Wszystkie omówimy w osobnych artykułach. Poniżej jedynie wykaz czym się zajmiemy.
Dyrektywy preporcesora
Lista dyrektyw.
#include
#define
#undef
#if #elif #else #endif
#ifdef #ifndef #else #endif
#error
#warning
#line
Makra
Makra są poniekąd odpowiednikami
funkcji inline. ale dostępnymi z poziomu
preprocesora. Do czego służą i jak je wykorzystywać, opiszę w osobnym artykule.
Makra predefiniowane
To makra zawierające konkretne informacje, które można wykorzystać w dowolny sposób:
__DATE__ - data kompilacji
__TIME__ - godzina kompilacji
__FILE__ - nazwa kompilowanego pliku
__LINE__ - numer linijki kodu
Kurs języka C:
Spis treści
Brak komentarzy:
Prześlij komentarz