nakże zachować w wypadku funkcji działających na napisach, które mają zwyczaj przechodzenia wzdłuż napisu w poszukiwaniu kończącego znaku pustego.
We fragmencie „Przed” konkatenujemy dwa napisy. Kod wygląda przy tym bardzo niewinnie. Ale funkcja strcat przed konkatenowaniem napisu źródłowego przechodzi przez cały napis docelowy w celu znalezienia jego końca. Ponieważ już znamy długość napisu (przynajmniej w tym przykładzie), to przechodzenie przez cały napis docelowy jest stratą czasu. W kodzie poprawionym unikamy tej czynności przechodząc do końca napisu za pomocą wskaźników. Wówczas wykonujemy funkcję strcpy.
Przykład: String::Append() w pliku String.cpp
129
Biblioteka C Runtime (CRT) jest zbiorem często stosowanych funkcji używanych przez większość programów. Zawiera kod uruchamiający program, jak również wiele innych funkcji. Poza tym zajmuje w naszych programach mnóstwo miejsca. Jeśli zależy nam na zmniejszeniu rozmiaru kodu, to możemy napisać własny kod uruchamiający, a także odtworzyć te funkcje CRT, które są nam potrzebne.
130
Kod źródłowy
#pragma intrinsic(sin, cos)
double Tryg::DblSinusWbud(double dbIKąt)
return sin(dblKąt);
Procesor Pentium ma wiele wydajnych funkcji wbudowanych sprzętowo. Na przykład ma różne funkcje trygonometryczne w postaci instrukcji działających na typach zmiennopozycyjnych.
Biblioteka CRT zawiera wersję programową tych funkcji przeznaczoną dla komputerów bez koprocesora zmiennopozycyjnego.
Wywołanie wbudowanej funkcji jest szybsze, chociaż powoduje wygenerowanie kodu działającego tylko na niektórych typach komputerów, takich jak Pentium i nowsze modele. Użycie funkcji wbudowanych pozwala również na zmniejszenie rozmiaru wygenerowanego kodu, ponieważ nie powoduje dołączenia całej masy kodu z biblio-