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.
#include <stdio.h>
int main()
{
char* text = "hello World";
text[0] = 'H';
printf("%s", text);
return 0;
}
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.