Skonfrontuję dzisiaj dwa rodzaje tworzenia stałych w języku C. 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 MOŻNA TWORZYĆ NA DWA SPOSOBY

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 tutaj 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 (jednak będąc dalej językami wysokopoziomowymi).

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.

RÓŻNICE POMIĘDZY DYREKTYWĄ "#DEFINE", A SŁOWEM KLUCZOWYM "CONST"

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 (oraz C++) 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