Skonfrontuję dzisiaj dwa rodzaje tworzenia stałych w języku C (jest powód dlaczego kurczowo trzymam się teraz C, omówię to innym razem). Warto wiedzieć, że w tym języku (jak również w C++) można tworzyć stałe korzystając ze sformułowania "#define" lub "const". Jedno dotyczy preprocesora, a drugie kompilatora. Różnic jest o wiele więcej...

STAŁE W JĘZYKU C. OMÓWIENIE

Dzisiaj dominują tylko języki wysokiego poziomu. Nie ma znaczenia czy piszemy gry, aplikacje czy nawet systemy wbudowane. Gdzie okiem sięgnąć, wszystkim "trzęsie" język wysokiego poziomu. Ponieważ język C ma już swoje lata (istnieje od 1972) nie był tworzony na taki wzór, jaki widzimy w wielu innych językach. Stałe w danym języku pisze się tak, a stałe w języku C pisze się jeszcze inaczej. Języki C i C++ są językami bardzo specyficznymi, gdyż zostały zrobione pod kątem dostosowania się do programisty. W końcu zapewniają niskopoziomowy dostęp do wszystkich funkcji systemu, tak jak asembler.

Język C oraz C++ oprócz procesu kompilacji przechodzi jeszcze przez etap preprocesora. Jest to program, który wyszukuje wbudowanych dyrektyw takich jak "#include" czy tytułowy "#define" zamieniając "#define" na stałe wartości, a "#include" na zawartość dołączanego pliku nagłówkowego (oto cała magia!). Nie tylko do tego ograniczają się dyrektywy preprocesora, ale to nie jest istotne w tym temacie. Ważne jest aby wiedzieć, że definiując stałe w języku C musimy pamiętać o tym, że określanie ich jako "#define" albo "const" ma znaczenie dla procesu "sklejania" programu.

Język C

Stałe w języku C tworzone przy pomocy dyrektywy "#define" są postrzegane zupełnie inaczej niż tworzone za pomocą słowa kluczowego "const".

STAŁE W JĘZYKU C. RÓŻNICE

Po lewej stronie tabeli umieściłem najważniejsze czynniki dotyczące stałej jako "#define", a po prawej, stałej jako "const".

#define const
to jest makrodefinicja to jest słowo kluczowe
nie jest sprawdzany typ jest sprawdzany typ
przetwarzanie przez preprocesor przetwarzanie przez kompilator
można również definiować makra (funkcje z "#define") można definiować tylko stałe wartości
posiada tylko zasięg globalny ma zasięg globalny lub lokalny w zależności od miejsca deklaracji
przy pomocy "#undef" można usunąć stałą nie można samemu usunąć stałej

Od tej pory, miejcie na uwadze, że tworzone stałe w języku C (C++ też) mają dużo więcej różnic niż można było przypuszczać.


Tym razem nieco krótszy artykuł mający na celu podkreślenie samych najważniejszych informacji na temat tego, jak tworzyć stałe w języku C. Jeśli interesujecie się językiem C, zamieściłem poniżej sekcję "Podobne artykuły", tak jak to robią "elity" SEO. Ponieważ nie znalazłem żadnego sensownego ulokowania któregokolwiek z linków do moich poprzednich artykułów postanowiłem, że wstawię na końcu taki zbiór tytułów, abyście mogli sobie wybrać któryś z artykułów o podobnej tematyce. Możliwe, że teraz w taki sposób będę zamieszczał odnośniki do innych wpisów na stronie.

PODOBNE ARTYKUŁY