Kompilacja warunkowa

Kompilacja warunkowa jest techniką kompilacji stosowaną w wielu językach programowania. Polega ona na uzależnieniu kompilacji fragmentów kodu programu od spełnienia podanych warunków.

Ta technika wykorzystywana jest do tworzenia różnych wersji programów w oparciu o ten sam kod źródłowy np. dla zróżnicowania na potrzeby testowe i programu końcowego.

Język programowania umożliwiający kompilację warunkową musi mieć dyrektywę warunkowej kompilacji oraz dyrektywy kompilacji pozwalające na definiowanie warunków. Dyrektywa warunkowej kompilacji jest w większości przypadków wzorowana na instrukcji warunkowej.

Przykładem języka obsługującego kompilację warunkową jest C, w którym jest ona obsługiwana na poziomie preprocesora.

Przykład w C/C++

edytuj

Przykładowa zawartość pliku test.c:

#ifdef TEST
  double test = M_PI;
#else
  float test = M_E;
#endif

Kompilując ten program komputerowy przy zdefiniowanym makrze TEST (np. za pomocą gcc[a] - gcc test.c -D TEST, bądź przez wcześniejsze użycie dyrektywy preprocesora - #define TEST), fragment ten będzie równoważny instrukcji double test = M_PI; W programie zmienna test będzie typu double i zostanie jej nadana wartość liczby π. Kompilując kod bez zdefiniowanego makra TEST otrzymamy wartość M_E.

  1. Jeśli chcielibyśmy skompilować ten fragment kodu jak napisany w C++, wystarczyłoby zamiast gcc użyć g++.