skip to Main Content

Słowo kluczowe const (C) – Szybszy program

Powinniśmy pamiętać że w języku C funkcje zawsze korzystają z kopii oryginałów. Oczywiście sposobem na ominięcie konieczności kopiowania całej zmiennej do innego miejsca w pamięci jest przekazanie tylko wskaźnika. W taki sposób do funkcji są przekazywane tablice – przez wskaźnik.

Ale ‚with great power comes great responsibility‚, ponieważ pozwalamy sobie na pracę na oryginale. A przypadkowe zmiany stałych mogą spowodować zwiększoną ilość godzin spędzonych na szukaniu błędów.

Kiedy używamy w swoim programie struktur, rzeczywistość może być inna niż zakładamy. Załóżmy że mamy taką strukturę.

Rozmiar takiej struktury wynosi 200 bajtów (taki wynik został zwrócony przez sizeof(); używam kompilatora Visual C++).

I ta tablica wewnątrz struktury nie jest już ‚przenoszona’ do funkcji przez wskaźnik; jest tworzona kopia obiektu.

Dlatego zamiast pisać:

Powinno się zapisać to tak:

Dzięki takiemu zabiegowi program nie kopiuje dużego obszaru danych, oraz mamy pewność, że nic nie zmienimy w strukturze przez przypadek

Paweł Sołtysiak

Programista, domowy kucharz i "amator amerykańskiej polityki".
Zbieram informacje z całej sieci, po odrzuceniu chwastów i dodaniu swojej opinii publikuje na blogu.

Back To Top