skip to Main Content

Słowo kluczowe const (C/C++) – Ochrona przed błędami programisty

Kompilatora C nie nazwę kompilatorem wymagającym. Często gdy kompiluję kod pod GCC pojawia się ostrzeżenie z dopiskiem enabled by default. Dzięki pobłażliwemu podchodzeniu do kompilowanego kodu, pozwala to uzyskać pewną elastyczność w tworzeniu programów. Także kompilatory języka C mogą być małych rozmiarów jak Tiny C Compiler.

Czasem z tej pobłażliwości warto zrezygnować, aby pisać kod bardziej odporny na błędy, od strony programisty.
Słowo kluczowe const służy do ustalenia czy coś ma być niezmienne przez okres działania programu. Tylko tyle i aż tyle. „Siłę” słowa można zaobserwować w pierwszym przykładzie:
Program bez const:
Na pierwszy rzut oka wszystko wygląda poprawnie, program się skompiluje oraz nie „wyrzuci” żadnych ostrzeżeń, a jednak program po uruchomieniu „wywali się” informując o naruszeniu ochrony pamięci.

Wynika z tego że ciąg „hello World” jest ciągiem stałym, zapisanym wewnątrz skompilowanego obiektu, który jest później łączony w postać wykonywalnej aplikacji.

Dlatego dodanie słowa kluczowego const po lewej stronie typu, da odpowiednią informację kompilatorowi. Który będzie pilnował, aby tego ciągu nie można było zmieniać.

Następnym razem o użyciu słowa kluczowego const, aby poprawić wydajność programów.

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.

  • Anonymous

    emmmm, const wywali błąd kompilatora bo znajdzie próbę pisania pod element ‚stały’, ale to co jest tu napisane w ogóle jest błędne ponieważ piszesz po pamięci. Sobie wziąłeś jakiś wskaźnik i coś pod niego tam wpisałeś. Równiedobrze mogłeś nadpisać jakieś dane krytyczne dla funkcjonowania systemu.

    Malloc i new – pamiętamy! 🙂

Back To Top