RSS

Jak zwiększyć czytelność kodu w C++

Liczba odsłon: 23

Prawie rok temu pisałem w moim blogu dlaczego komórka pamięci o adresie zero jest zazwyczaj zarezerwowana dla nieprawidłowych wskaźników. Dzisiaj prosta porada dla programistów piszących w języku C++ zwiększająca czytelność programów i jakość kodu.

W języku C nieprawidłowe wskaźniki zapisywano słowem NULL, najczęściej zadeklarowanym po prostu w plikach nagłówkowych i odpowiadającym wskaźnikowi o wartości zero. Standard C++ odrzuca tę metodę, preferując używanie po prostu wartości 0 (na przykład: int *wskaznik = 0;). Niestety, trudno takie zera odróżnić od liczb o wartości zero i dlatego wielu programistów wciąż trzyma się starych zasad, używając definicji NULL. Dopiero w C# usunięto ten problem, tworząc słowo kluczowe null opisujące wskaźnik zerowy (a dokładniej: nieistniejącą zmienną, gdyż w C# nie operuje się wprost pojęciem wskaźnika poza specyficznymi przypadkami).

Ponieważ jest to bardzo wygodne, polecam utworzyć w plikach nagłówkowych własnych bibliotek definicję #define null 0 i dodać do biblioteki słów kluczowych edytora tekstów, którego używa się do pisania programów słowo null, aby było ono podświetlane na równi z innymi (o ile edytor ma taką możliwość, jak na przykład Crimson Editor). Gdy zaczniesz stosować null zamiast NULL czy 0, programy od razu staną się bardziej przejrzyste i zrozumiałe, a to ustrzeże Cię od błędów już na etapie pisania kodu — bez żmudnego debugowania. Zerknij zresztą na obrazek — czy taki kod nie wygląda lepiej?

Przy okazji jeszcze inna porada: nie stosuj konstrukcji typu (wskaznik) czy (!wskaznik) by testować, czy wskaźnik jest poprawny lub nie. Zamiast tego pisz po prostu (wskaznik != null)(wskaznik == null). Kompilator i tak wygeneruje identyczny, optymalny kod (sprawdziłem!), a zysk ze zwiększonej czytelności kodu źródłowego jest olbrzymi.