047 TIF

047 TIF



Po

#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

Bycie świadomym tego, co robią funkcje (przynajmniej te, których się używa)

unikanie awarii; unikanie nieoczekiwanych wyników

Przed

const zrozumieć, jak działają Literał &operator=(const char *pch)

{

strncpy(m_rgch, pch, sizeof(m_rgch)~1); return *this;

Po

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.


Wyszukiwarka

Podobne podstrony:
8 podoba mu się, nawet po kłótni i rozstaniu z Witkacym, kiedy ten już jest w drodze do Europy. I my
CCF20090610191 tif jące zderzenie, oraz a2 i b2 po zderzeniu) oraz jedna składowa trzeciej wielkośc


039 TIF Po #define CZYSTE =0; virtual BOOL FOtwórz(const char *szTekst) CZYSTE; Zdarzają się sytuacj
043 TIF Po if(!((i+1) % 64)) cout« "

ANSI C 0 5 WSKAŹNIKI I TABLICE o specjalną wartość wskaźnikową. Stała NULL jest zdefiniowana w
1.2 Kryptoanaliza czyli po co komu tutaj liczby losowe Kryptoanaliza jest dziedziną wprost przeciwną
Slajd47 (20) •    Kanały sodowe po otwarciu ulegają szybkiej inaktywacji, czego 
img006 (68) po części socjologiczna nad tymi zagadnieniami podejmowana jest przez pryzmat badania sp

więcej podobnych podstron