Cześć i witaj.
W tym wykładzie chcę porozmawiać o oświadczeniu include.
I tak znowu, od naszego pierwszego rzuć wyzwanie
naszemu pierwszemu zetknięciu się z kodem c i programem c, które powinieneś mieć zauważyłem to oświadczenie.
Tutaj jest w linii ósmej przykład, a to
jest nasz przykładowy projekt wyzwanie podstawowy program w c.
Widzisz, to obejmuje.
A teraz, ponieważ się nauczyliśmy o preprocesorze
wiemy, że jest to dyrektywa preprocesora ponieważ mamy ten symbol funta.
Wszystko, co zaczyna się od symbol
funta przed innymi spacjami jest poleceniem preprocesora, dyrektywa preprocesora.
I tak wiemy, że wiersz ósmy zawiera specjalne słowo kluczowe z symbolem
funta jest dyrektywą wstępnie przetworzoną.
Chcę ci teraz wyjaśnić co to właściwie robi?
Co to znaczy?
Ponownie, jest to podstawowa koncepcja w c o którym musimy porozmawiać bardzo
wcześnie, ponieważ każdy program c ma to.
Jest bardzo podobnie, jeśli jesteś zaznajomiony z java z instrukcją importu.
Ale opiszemy to w szczegółowo teraz na niektórych slajdach, ale zobaczysz
to we wszystkich swoich programach c.
Więc instrukcja include to dyrektywy preprocesora, ponieważ znamy
ten symbol funta.
I nazywamy to stwierdzeniem jako w przeciwieństwie do dyrektywy bez prawdziwego
powodu, tylko dlatego, że jest to powszechne używaj tego terminu w języku programowania,
ale technicznie jest to dyrektywa.
I znowu przykład w naszym program zawierał to coś
w tych nawiasach ostrych.
Widzimy więc to słowo kluczowe include a potem widzimy to stdio. godz.
A więc to jest przykład.
To jest ten, który my użyte w naszym pierwszym wyzwaniu.
Nie jest to wyłącznie część programu wykonywalnego.
Jednak program bez niego nie zadziała.
Wiemy, że to dyrektywa wstępnie przetworzona.
Tak naprawdę to nie robi zbyt wiele o ile program działa.
Po prostu mówi kompilatorowi zanim się uruchomi, hej, robiliśmy tutaj coś z
tym włączeniem.
A więc jeśli go nie masz tam kompilator będzie narzekał
i zgłaszał błędy.
Więc tego potrzebujesz.
Wskazuje na to symbol funta jest to dyrektywa dotycząca wstępnego przetwarzania.
Rozmawialiśmy o tym, czyli instrukcja, aby kompilator zrobił
coś wcześniej kompilacja kodu źródłowego.
Istnieje wiele procesów wstępnego przetwarzania dyrektywami i podaliśmy kilka przykładów w naszym
wykładzie dotyczącym wstępnego przetwarzania.
Rozmawialiśmy o stałych, zdefiniowane stwierdzenia.
Rozmawialiśmy o tym, czy i jeszcze i tak dalej różne dyrektywy
warunkowego przetwarzania wstępnego.
Ale to jest jeden z najbardziej naprawdę powszechnie używane, to include.
I znowu, te dyrektywy mogą znajdować się w dowolnym miejscu kodu źródłowego, ale zwykle znajdują
się one na górze.
W szczególności to dyrektywa include preprocesora jest bardzo podobna do
instrukcji import w javie, jeśli to znasz.
Ale co to znaczy?
Więc w powyższym przykładzie tutaj z zawiera standardowe stdio z symbolem funta. h, to mówi kompilatorowi
aby dołączyć część zawartości programu do pliku
o tej nazwie.
Więc jest taka nazwa pliku istnieje gdzieś o nazwie stdio. godz.
A to właśnie mówi dyrektywa mój obecny program, który
zawiera dyrektywę, potrzebuje części zawartości wewnątrz tego pliku w celu skompilowania.
Więc konkretnie dołącz Dyrektywa będzie miała nazwy plików kończące się
na. godz.
Nazywa się to plikami nagłówkowymi.
Nazywa się je plikami nagłówkowymi ponieważ zwykle znajdują
się na początku pliku źródłowego.
To jedna z pierwszych rzeczy, które robisz czy dołączasz wszystkie swoje pliki nagłówkowe.
I znowu ten preprocesor Dyrektywa mówi,
że chcę, aby część zawartości znajdowała się w tym pliku.
To nie jest plik c.
Wiemy, że pliki się kończą w . c to pliki źródłowe c.
Więc. h musi być coś innego i tak jest.
To plik nagłówkowy.
I to ma. h rozszerzenie.
Porozmawiajmy więc o czym jest plik nagłówkowy.
Pliki nagłówkowe definiują informacje o niektórych funkcjach udostępnianych
przez ten plik.
Podam wam przykład treści w pliku nagłówkowym.
Ale po pierwsze, niektóre definiują informacje o jakimś kodzie źródłowym.
A konkretnie na nasz przykład z tym zawiera stdio. h, to zawiera nagłówek standardowej
biblioteki c.
Więc pamiętaj, powiedziałem o bibliotekach.
Biblioteki są po prostu dodatkowe funkcjonalność, która jest już napisana dla
Ciebie i c, że Ty można dołączyć do programu, więc
nie musisz go przepisywać.
A więc znowu przykłady bibliotek czytanie i pisanie na konsoli, wyświetlanie danych
wyjściowych, czytanie i pisanie plików, wiele różnych rzeczy związanych
z tworzeniem kodu sieciowego, wiele wiele różnych bibliotek.
Ale stdio. h jest standardową biblioteką c.
Co to oznacza, że pochodzi z język
programowania c i zapewnia funkcjonalność wyświetlania wyjście wśród wielu innych rzeczy.
Więc stdio. h, to plik nagłówkowy.
Definiuje pewne funkcje, które kompilator musi to zrozumieć, zanim będzie mógł
go faktycznie użyć.
A więc konkretnie stdio. h zawiera informacje o printf.
A więc będziemy rozmawiać o printf w następnym
wykładzie, który pomoże nam wyświetlić wynik, ale printf to funkcja, która
jest w stdio. h plik nagłówkowy.
Zawiera również wiele innych funkcji.
Stdio to skrót od standardowe wyjście wejściowe.
Więc ta biblioteka opisuje zawiera funkcjonalność do obsługi danych wejściowych
i wyjściowych.
Taka jest koncepcja używania znaczącej nazwy.
Nie chcemy tego nazywać biblioteka Jason lub Jason. h, ponieważ to nie
ma znaczenia.
Używamy stdio. h ponieważ mówi standardowe io.
Standardowe wejście i wyjście i wiemy że ta biblioteka zawiera wszelkiego
rodzaju funkcje importu alfa.
W szczególności funkcjonalność, która chcemy użyć w naszym programie wyzwania, naszym przykładowym
pierwszym programie Czy chcemy użyć funkcji o nazwie printf, która
nam na to pozwala wyświetl wyjście na konsolę.
A więc dołączając to stdio. h in nasz kod źródłowy, mówimy, aby korzystać z tej
funkcji tego printf, musimy dołączyć ten plik.
Więc pożary nagłówków będą określać informacje, których kompilator
używa do integracji i ponownego wykorzystania kod, dowolne funkcje w programie.
Więc albo użyjesz wielu wiele różnych plików nagłówkowych bibliotek standardowych
i jest ich wiele tam, stdio. h jest tylko jeden.
Znów są pliki nagłówkowe, które definiują funkcjonalność lub prototypy
funkcji dla kodu sieciowego, kodu gniazda.
Ponownie przejdziemy przez wiele z nich, ciągi na całe słowa i
tym podobne.
Ale oprócz standardu c biblioteka w różnych bibliotekach, które są dostarczane z
programowaniem c język, możesz także tworzyć własne pliki nagłówkowe
i będziesz tworzenie własnych plików nagłówkowych, ponieważ pliki nagłówkowe
umożliwiają ponowne wykorzystanie oprogramowania.
Pozwalają na ponowne użycie funkcjonalność napisana w c.
Więc gdzieś pisali projektanci c cały ten kod w języku C, który czyta i zapisuje
dane oraz obsługuje dane wejściowe i wyjściowe.
Nie chcą tego nowego programisty C. musieli pisać własne.
Więc będą pisać to dla ciebie,
a oni powiedzą, że możesz go użyć.
A sposób, w jaki go używasz, jest dołączasz plik nagłówkowy.
A więc Ty, jako Twój własny programista, możesz napisać jakiś kod w dużym, dużym,
dużym programie, tysiące plików to chcesz być używany w innych plikach.
I tak będziesz pisać własne pliki nagłówkowe.
I znowu pliki nagłówkowe, zamierzają zdefiniować prototypy
funkcji, różne stałe, różne rzeczy, które pomogą komuś
innemu plik, który może korzystać z twojego programu, pomoże
skompilować twój program.
Więc jest to ponowne użycie oprogramowania technika zasadniczo.
Więc zamierzamy to uwzględnić standardowe io. plik nagłówkowy w programie,
kiedy tylko potrzebujemy funkcja printf z biblioteki
standardowej, jest wymagana.
Jeśli nie dołączyłeś to się nie skompiluje.
Więc kiedy używasz pewne funkcje, musisz
użyć dołączenia.
Składnia, jeśli chodzi o pliki nagłówkowe idź, rozróżniają wielkość liter.
Rozróżnianie wielkości liter oznacza wielkie lub małe litery.
Ma znaczenie, czy ty zrób jedną lub drugą.
Więc zawsze powinieneś napisz je małymi literami.
Twoje pliki nagłówkowe powinny być w formacie małe litery, ponieważ w
przeciwnym razie niektóre systemy mogą interpretować mają inne znaczenie.
Istnieją dwa sposoby uwzględnienia pliki nagłówkowe w programie.
Możesz użyć nawiasów kątowych takie jak funt to
Jason. h i nawiasy kątowe.
A to zwykle oznacza, że jest mówiąc preprocesorowi, aby
szukał pliku w jakimś katalogu systemowym.
Zwykle jest to standardowa biblioteka pochodzi z języka programowania c.
Możesz także użyć podwójnych cudzysłowów.
Podwójne cudzysłowy zwykle oznaczają, że to oznacza jest to plik nagłówkowy zdefiniowany przez użytkownika.
To taki, który stworzyłeś jako programista, który nie przyszedł
z językiem programowania c, ale chcesz mieć tam ten nagłówek, ponieważ
chcesz ponownie użyć jakiegoś kodu.
Więc to też powie spójrz w bieżącym katalogu.
Każdy kompilator C, który jest zgodny do standardu C11 będzie miał
zestaw standardowych nagłówków pliki dostarczone wraz z nim.
To tylko pliki nagłówkowe które reprezentują biblioteki.
Funkcjonalność C, która pochodzi z języka.
Kiedy używasz dyrektywy include, Jeśli nie, to powszechną praktyką jest używanie innych dyrektyw
preprocesora znajdź i zdefiniuj, aby nie dołączać pliku więcej
niż raz.
To jest dla wydajności.
Więc jeśli twój program używa printf, na przykład wyświetlając dane
wyjściowe na ekranie, chcesz powiedzieć swojemu programowi, hej, muszę uwzględnić tę
dodatkową funkcjonalność w standardowej bibliotece.
Nie chcesz tego powiedzieć dołączaj to więcej niż raz, ponieważ preprocesor
zrobi wiele rzeczy, których nie musi robić.
Więc zazwyczaj będziesz użyj, jeśli nie zdefiniowano.
Więc w niektórych zobaczysz to z przykładów, które podam, w
których zawijam dołączenia w tych if nie definiuje i nie definiuje instrukcji.
Oto przykład pliku plik nagłówkowy w swojej zawartości.
Możesz mieć jakiś plik nagłówkowy, ma jakieś uwagi, może
zawierać inne rzeczy.
Ma głównie funkcję prototypy w nim, ale może mieć
stałe, może mieć typy czcionek.
Oto kilka pojęć jeszcze nie rozumiemy.
Ale ja tylko próbuję to zilustrować próbując pomóc ci zrozumieć,
że zawiera wiele różnych rzeczy.
Ale znowu dla naszego stdio. h, jest coś tam o nazwie printf, które definiuje funkcję printf
tak, że kiedy łączymy się, możemy znaleźć kod implementacyjny
do tego.
Oto kilka prototypów funkcji.
Prototypy funkcji są tylko nazwy funkcji.
Wiemy, czym jest funkcja miejmy nadzieję, że teraz jest
to tylko sposób na grupowanie kodu.
Porozmawiamy o funkcjach bardziej szczegółowo później.
Więc plik nagłówkowy może zawierać wiele, wiele różnych rzeczy.
Może zawierać zdefiniowane dyrektywy, stałe, deklaracje struktur.
To znowu sposób na grupowanie innych zmienne, grupuj różne dane.
Instrukcje Typedef mają do zrobienia z typami danych.
Porozmawiamy o tym więcej.
Ale prototypy funkcji są naprawdę ważny.
Mówią ci, jak działa są zdefiniowane, więc kompilator może wygenerować kod,
którego potrzebuje.
Kod wykonywalny idzie w pliku z kodem źródłowym.
Plik kodu źródłowego się kończy w . c rozszerzenie.
Kod wykonywalny normalnie nie trafia do pliku nagłówkowego.
Jest kilka wyjątków.
Kiedy chcesz robić rzeczy w trybie inline co znowu jest
kwestią wydajności, kiedy można umieścić kod
źródłowy do plików nagłówkowych, ale zazwyczaj plik. h plik, a plik nagłówkowy nie będzie zawierał kodu implementacji.
Będzie zawierał linie kodu tylko definicji.
W porządku, nie idzie być tam jakąkolwiek logiką.
To będą tylko definicje.
Ta funkcja istnieje.
Te stałe istnieją.
Te różne struktury istnieją.
Nie mówią, jak ten kod robi to, co robi.
Po prostu mówi ci, że tam jest.
Jest potrzebny kompilatorowi aby wygenerować linkowanie.
Ok, więc zamierzasz utwórz własne pliki nagłówkowe.
Będziesz używać nagłówka systemowego pliki dla dodatkowej funkcjonalności.
To koncepcja, której potrzebujesz zrozum, zanim przejdziesz do pisania
programów w C, ponieważ zobaczysz tę
dyrektywę include we wszystkich programach.
I to tylko opowiadanie programowi znowu, że dołączamy
gdzieś dodatkowy kod.
Dołączamy dodatkową definicję kodu, abyśmy mogli teraz wywołać
te różne funkcje w this inny kod w naszym programie c.
Mam więc nadzieję, że to ma sens.
Ponownie, to nie jest prawdziwe skomplikowana koncepcja.
Dołączamy dodatkowy kod.
Jest to dość intuicyjne, ale przejdziemy przez
to, podamy więcej przykładów.
Dziękuję Ci.