#ifdef NULL
#pragma message("NULL już jest zdefiniowany")
#else
#define NULL 0 #endif
Można uniknąć komunikatów o błędach (łącznie z takimi, jak we wskazówce 39.), jeśli przed zdefiniowaniem stałej sprawdza się, czy nie została już ona zdefiniowana. Ponieważ sprawdzenie to jest przeprowadzane podczas wstępnego przetwarzania, nie ma ono wpływu na wydajność.
Przykład: plik drg.h
unikanie awarii; unikanie nieoczekiwanych wyników
const zrozumieć, jak działają Literał &operator=(const char *pch)
strncpy(m_rgch, pch, sizeof(m_rgch)~1); return *this;
const Litera! &o p e rato r=(const char *pch)
strncpy(m_rgch, pch, sizeof{m_rgch)-2); m_rgch[sizeof(m_rgch) - 1] = 0: return *this;
Musimy dokładnie zrozumieć, jak działają funkcję, aby się upewnić, że przez przypadek nie wywołujemy błędów. W tym przykładzie kopiujemy do naszej klasy zawartość ze zmiennej typu char *. Napis w naszej klasie ma pewien ustalony rozmiar, a char * może być wskaźnikiem do napisu o dowolnej długości. Dlatego używamy funkcji strncpy zamiast strcpy, aby się upewnić, że nie skopiujemy więcej, niż mieści bufor.