Jason. Cała informatyka w jednym miejscu!

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 (obecny :D!), 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 gdzieś tak od 1972 roku) 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ż stanowią trzon języków wysokiego poziomu i samego programowania wysokopoziomowego. 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 w szerszym tego słowa znaczeniu, 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