Const i static to pojęcia ortogonalne zarówno w C, jak i C ++.
Plik constKluczowe informuje kompilator, aby uniemożliwić zmienną pojawianiu jako lwartości jakiegokolwiek wyrazu - w istocie czyni go tylko do odczytu.
W języku C staticsłowo kluczowe ma kilka zastosowań w zależności od tego, do czego jest stosowane. Po zastosowaniu do zmiennej funkcji wskazuje, że zmienna nie jest przechowywana w lokalnym zakresie funkcji, ale jest dostępna przez jej wywołania. Po zastosowaniu do zmiennej lub funkcji globalnej staje się dostępna tylko dla określonego pliku - innymi słowy, jest dostępna tylko w jednostce kompilacji (o ile nie została zadeklarowana extern).
W C ++ staticsłowo kluczowe może być używane w definicji klasy, aby zmienna lub funkcje były wspólne dla wszystkich instancji klasy, zamiast być lokalną dla każdej instancji. Ponadto statyczna funkcja klasy w C ++ ma dostęp tylko do zmiennych statycznych tej klasy (lub klas, do których ma dostęp). Teraz w C ++ constdaje członkom wewnętrzne powiązanie z jednostką kompilacji, chyba że są wyraźnie zadeklarowane extern- może to być to, do czego się odnosisz. Umożliwia to współdzielenie stałych czasu kompilacji w całej jednostce za pomocą plików nagłówkowych. Pamiętaj jednak, że składowe nie są tak naprawdę statyczne - raczej stała jest kompilowana w każdym miejscu, do którego się odwołuje.