W warunku dyrektywy #if można wykorzystać systemową makrodefinicję
defined(nazwa)
sprawdzającą czy podana nazwa została zdefiniowana
Czasami zdarza się, że pewna nazwa zdefiniowana w jakiejś bibliotece koliduje z naszym planem użycia tej nazwy. Wtedy może przydać się dyrektywa
#undef nazwa
która powoduje wymazanie z pamięci kompilatora wcześniej wyuczonej nazwy.