CPP
Z Wikipedii
cpp (C Preprocessor) to standardowy preprocesor dla języków C i C++.
CPP udostępnia jedynie bardzo prostą funkcjonalność i w żaden sposób nie rozpoznaje składni języka przetwarzanego tekstu.
Ważniejsze funkcje to:
- Zdefiniuj stałą:
#define X Y
- Zdefiniuj makro:
#define X(argument) rozwinięcie
- Skasuj definicję:
#undef X
- Włącz plik (poszukiwany wg ścieżki standardowej, zdefiniowanej w konfiguracji programu cpp):
#include <stdlib.h>
- Włącz plik (poszukiwany wg ścieżki dodatkowej, definiowanej przez użytkownika):
#include "foo.h"
- Kompilacja warunkowa
#if warunek Kod jeśli warunek jest spełniony #else Kod jeśli warunek nie jest spełnione #endif
W języku C bardzo wiele ważnej funkcjonalności zależy od preprocesora. Użycie preprocesora jest jednak źródłem wielu problemów i pomyłek programistycznych. Poza szczególnymi przypadkami nie jest on też zintegrowany z językiem.
Z tego powodu w języku C++ dodano wiele funkcjonalności mającej na celu zastąpienie preprocesora. Część tej funkcjonalności została potem dodana również do języka C.
Są to między innymi:
- Deklaracje stałych (poprzez słowo kluczowe języka
const
zamiast dyrektywy preprocesora#define
) (również w C):
const int foo = 5;
- Funkcje rozwijane (inline) zamiast makr (również w C):
inline int abs(int x) { if(x>0) return x; else return -x; }
- Szablony (tylko C++):
template<class T> swap(T &x, T &y) { T tmp; tmp=x; x=y; y=tmp; }
Nadal jednak konieczne jest użycie preprocesora do włączania nagłówków bibliotek oraz do kompilacji warunkowej.