#define[]
A #define direktívával makróhelyettesítéseket végezhetünk a fordítóval.
#define makrónév karaktersorozat
A define lehetőséget ad argumentumokkal rendelkező makrók definiálására.
#define ABS(a) ((a<0) ? -(a) : (a))
#error[]
Az #error direktívával a fordítás felfüggesztésére kényszeríthetjük a fordítót. Ahogy a fordító ezzel a direktívával találkozik, abbahagyja a fordítást.
#error üzenet
A fordítás megállításakor az üzenet és a #error-t tartalmazó sor száma jelenik meg a képernyőn.
#pragma[]
Impelementáció függő direktíva, amely különböző instrukciók közvetítését teszi lehetővé a fordítóhoz.
A # és a ## prepocesszor operátorok[]
# operátor[]
A # operátorral garantálhatjuk, hogy a mögötte található argumentumba idézőjelek közé zárt string kerüljön:
#define mkstr(s) #s
int main()
{
cout << mkstr(Tetszik a C++);
return 0;
}
Az előfeldolgozó:
cout << mkstr(Tetszik a C++);
sort
cout << "Tetszik a C++";
sorral helyettesíti.
## operátor[]
A ## operátorral két alapszimbólumot konkatenálhatunk össze.
#define concat(a, b) a##b
int main()
{
int xy=10;
cout << concat(x, y);
return 0;
}
A prepocesszor a sort
cout << xy;
sorrá alakítja.