Technika ta działa tylko wówczas, gdy porównujemy zmienne z literałami. Jest to mniej intuicyjny sposób pisania kodu i jego stosowanie może nas w końcu doprowadzić do choroby psychicznej. Lepiej po prostu przyzwyczaić się do pisania jednego znaku równości (=) przy przypisywaniu wartości, a dwóch znaków równości (=) przy porównywaniach.
kompilowanie kodu
const int dMaks=256;
W celu lepszego zorganizowania kodu często dołącza się pliki nagłówkowe .h z innych plików .h. Rozważmy następującą sytuację — plik coś.c wymaga pliku nagłówkowego coś.h, plik coś.h dołącza plik globalne.h; plik bar.c korzysta z pliku bar.h, który także dołącza plik globalne.h; plik baz.cpp wymaga zarówno pliku coś.h jak i bar.h. A zatem w pliku baz.cpp dwukrotnie dołącza się plik nagłówkowy globalne.h. Kompilatory nie lubią definiować stałych, klas i struktur więcej niż raz. Tak naprawdę w takiej sytuacji będą się całkiem głośno skarżyć.
Aby uniknąć tego problemu, należy otoczyć definicje plików nagłówkowych strażnikami. Strażnikiem nazywa się połączenie instrukcji #ifndef oraz #define, tak jak we fragmencie „Po”. Widzimy, że jeśli plik nagłówkowy już został wczytany, to stała _ALGOR_H będzie już zdefiniowana, instrukcja #ifndef nie powiedzie się i plik nagłówka zostanie ominięty. W przeciwnym wypadku stała _ALGOR_H nie będzie zdefiniowana i warunek #ifndef spowoduje przetworzenie pliku nagłówkowego.
Innym rozwiązaniem jest jednokrotne użycie instrukcji #pragma, o ile jest ona obsługiwana przez nasz kompilator. Ta instrukcja pozwala na dołączenie danego pliku nagłówka tylko raz. W praktyce przyspiesza kompilację, gdyż kompilator w ogóle nie musi analizować strażników #ifdef.
Przykład: plik algor.h