Witam i witam ponownie. W tym wykładzie chciałbym porozmawiać o ciągłych strunach.
Wiemy, że literały łańcuchowe lub stała łańcuchowa znajdują się w podwójnych cudzysłowach.
Ale co z samą zmienną. Jak możesz się upewnić, że zmienna
nigdy nie zmieni tej wartości?
Nazywa się to stałą. Tak więc stały
łańcuch jest czasami potrzebny w twoim programie,
jeśli nie chcesz, aby wartości twoich zmiennych kiedykolwiek się zmieniały.
Na przykład, jeśli tworzymy obwód jakiegoś obliczenia,
zrobilibyśmy 3. 14159 razy średnica.
3. 14159 jest stałą. To się nigdy nie zmienia.
Reprezentuje pi.
Byłoby więc naprawdę fajnie, gdybyśmy zamiast używać tej magicznej liczby, moglibyśmy użyć
zmiennej i upewnić się, że ta zmienna nigdy się nie zmienia.
Są więc dobre powody,
aby używać stałej symbolicznej zamiast po prostu wpisywać liczbę za każdym razem.
Po pierwsze, nazwa mówi dużo więcej niż liczba.
Należność równa się 0. 015 razy wartość domu
jest znacznie mniej znacząca niż kwota zadłużenia równa się stawce podatku pomnożonej przez wartość.
Dlatego chcemy mieć nazwy zmiennych, które reprezentują liczby, które
nigdy się nie zmieniają.
Jeśli czytasz długi program,
znaczenie drugiej wersji wizji jest o wiele jaśniejsze.
O wiele łatwiej jest spojrzeć na ten kod i zrozumieć, że 0. 015 oznacza stawkę podatku.
Załóżmy, że użyłeś stałej w kilku miejscach
i konieczna jest zmiana
jej wartości, musiałbyś zmienić tę wartość w każdym miejscu programu,
zamiast zmieniać ją w jednym miejscu, w którym definiujesz tę stałą.
Mówiłem o tym wcześniej, używając terminu magiczne liczby.
O to właśnie chodzi.
Ilekroć widzisz liczbę używaną w programie, nie jest ona przechowywana
w zmiennej, zwykle najlepiej jest utworzyć tę liczbę i umieścić ją w stałej.
Ponieważ wtedy, jeśli używasz go wiele razy i ta zmienna
się zmienia, wszystko, co musisz zrobić, to
zmienić ją raz. Nie musisz go zmieniać wszędzie tam, gdzie go używasz.
Dlatego unikaj magicznych liczb, używaj stałych.
Jednym ze sposobów zdefiniowania stałej w c jest użycie
do zdefiniowania dyrektywy preprocesora.
Tak więc ta dyrektywa preprocesora umożliwia definiowanie stałych i
faktycznie używałem jej w kilku programach. Teraz próbuję pomóc to wyjaśnić.
Więc jeśli chcesz określić stawkę podatku i była to
stała, możesz powiedzieć, że zdefiniuj ją, używając przed nią znaku funta.
Wiemy, że jest to dyrektywa preprocesora ze względu na znak
funta, a następnie wypowiadamy nazwę, a następnie wartość.
Kiedy program jest kompilowany, wartość 0. 015 zostanie zastąpione
wszędzie tam, gdzie zastosowałeś stawkę podatku, tak jak
zmienna, ale w rzeczywistości nie jest zmienną.
Nie możesz przypisać do tego żadnych innych wartości.
Gdyby to była zmienna, byłbyś w stanie przypisać
do niej dane, ale nie w tym przypadku, ponieważ jest to preprocesor.
Tak więc dyrektywa preprocesora mówi, że nie możesz przypisać danych
i określasz to za pomocą define.
Zwróć więc uwagę na składnię tego. Masz symbol funta, po którym następuje zdefiniowane słowo kluczowe.
A potem masz swoje imię.
Nie używamy żadnych operatorów przypisania.
Mamy tylko swoją nazwę, przestrzeń i wartość.
Aby przypisać wartość do tego określenia, wystarczy spacja.
Na końcu nie ma średnika. To nie jest stwierdzenie. To jest bardzo specyficzne.
Więc to, co się tutaj dzieje, to zastępowanie czasu kompilacji
dla tych preprocesorów. Preprocesor działa, zanim kompilator zapamięta.
Preprocesor będzie działał i zobaczy te zdefiniowane korzenie nośne. A potem wszędzie tam, gdzie zobaczy stawkę podatku,
po prostu wstawi 0. 015 dla kompilatora.
Zdefiniowane instrukcje mogą pojawić się w dowolnym miejscu programu.
Nie ma czegoś takiego jak lokalna definicja. Kiedy już masz definicję, każdy może
z niej skorzystać.
Najlepszą praktyką lub konwencją jest zwykle umieszczanie zdefiniowanych
instrukcji na początku programu lub
wewnątrz pliku dołączanego, jeśli chcesz udostępnić więcej
niż jeden plik źródłowy, ale nie musisz tego robić.
Ponieważ działa na preprocesorze, nie
ma żadnego zakresu, nie ma żadnego lokalnego ani globalnego.
Możesz go po prostu umieścić w dowolnym miejscu. Możesz go zobaczyć w dowolnym miejscu
programu, nawet jeśli jest używany, zanim zostanie zdefiniowany.
Zdefiniowane instrukcje są również naprawdę dobre, ponieważ pomagają zwiększyć przenośność programów.
Czasami możesz użyć zdefiniowanej instrukcji i powiązać ją z konkretnym komputerem, na którym pracujesz,
gdy program jest uruchomiony, a uzyska tę właśnie wartość.
Zdefiniowana instrukcja może być również używana do znaków i stałych łańcuchowych, a nie
tylko do liczb. Gdybyśmy chcieli zrobić coś takiego, to zupełnie słuszne.
Wystarczy umieścić pojedyncze znaki w pojedynczym cudzysłowie.
A jeśli faktycznie chcesz wstawić cały literał ciągu, po prostu
umieść go w podwójnych cudzysłowach. I właśnie to robi to ojej.
Innym sposobem tworzenia stałych i przeglądania jest
nowszy mechanizm. C90 dodało w zasadzie inny
sposób, który zapewnia stały modyfikator.
Możesz użyć słowa kluczowego constant, aby przekonwertować deklarację zmiennej na deklarację stałej.
A to pozwoli ci nigdy nie zmienić tej zmiennej. Więc wszystko, co robisz, to mówisz
const, a następnie określasz typ danych, a następnie nazwę zmiennej.
A to, co robi w tym przykładzie, sprawi, że miesiące staną się symboliczną stałą dla 12.
Nie nazywamy tego zmienną, ponieważ zmienna może się zmieniać,
dlatego nazywa się zmienną.
Masz stałe lub zmienne, a
stała w miesiącach nie jest zmienną, nie zmienia się.
Stała przekształca miesiące w wartość tylko do odczytu.
Możesz wyświetlać miesiące i używać ich w obliczeniach. Nie możesz zmienić wartości miesięcy.
Stałe są więc ważne, jeśli nie chcesz, aby dane ulegały
zmianie, a także mogą zastąpić magiczne liczby.
Const to nowsze podejście i jest bardziej elastyczne niż użycie define.
Pozwala zadeklarować typ.
Zapewnia również lepszą kontrolę nad tym, które
części programu mogą używać stałej.
Więc powinieneś używać stałej, kiedy tylko możesz, ale zobaczysz wiele
programów używających zdefiniowanego, ponieważ był to pierwszy mechanizm.
Istnieje również trzeci sposób tworzenia stałej, a
jest to użycie wyliczenia. Pamiętaj, rozmawialiśmy o wyliczeniach.
Wyliczenia to sposób tworzenia własnego typu
zmiennej i powiązania z nim tylko określonych danych. Nie możesz zmienić wartości wyliczeń.
Po zdefiniowaniu wyliczenia musi mieć te wartości.
Może mieć różne wartości, ale nadal
jest sposobem na stworzenie stałej symbolicznej, nie jest to kompletny sposób, ale rodzaj drogi.
Ponadto za pomocą const można zainicjować tablicę znaków i zadeklarować ją jako stałą,
co jest dobrym sposobem obsługi standardowych komunikatów.
Więc jeśli powiesz, że const char komunikat równa się, że koniec świata
jest bliski, to zadeklaruje wiadomość jako stałą i jest chroniona przed
jawną modyfikacją w twoim programie. Każda próba zmodyfikowania wiadomości przez wykonanie kopii
str spowoduje wyświetlenie komunikatu o błędzie z kompilatora.
Teraz możesz użyć tego do standardowego komunikatu, który może być
wyświetlany jako dane wyjściowe w różnych częściach programu.
Technika definiowania standardowych wiadomości jest szczególnie przydatna, jeśli są one
używane w wielu miejscach, jak wspomniałem.
Zapobiega przypadkowej modyfikacji takich stałych w innych częściach programu, podobnie
jak magiczne liczby.
Zatem stałe, których chcesz użyć
w swoim programie, dwa sposoby na ich zastosowanie, używając
słowa kluczowego define i słowa kluczowego constant.
Proszę, zwróć na to uwagę.
Możesz to zobaczyć w kilku nadchodzących przykładach.
Dziękuję Ci.