1 głośnik: Tak czuję, że mają tendencję do Napisać printf hello world lub printf witam procent a dość często w kontekstach gdzie chcę wydrukować ciąg, czasami prosząc część użytkownik tego łańcucha. Cóż, nie byłoby miło, jeśli stworzyliśmy Funkcja własne nazywa, powiedzieć, nazwę druku, którego celem w życiu jest po prostu wydrukować komentarzy przecinek tak-i-tak, przyjmując to i tak jako argument tej funkcji? Możemy zadeklarować funkcję własny po prostu, jak to możliwe w Scratch następująco. Innymi słowy, załóżmy, że chciałbym printf swoje imię, a następnie zwrócić się do użytkownika na swoje nazwisko z ciągu znaków y jest równa GetString. A potem chcę wywołać funkcję nazwie nazwa druku przechodząc s jako wejścia. Teraz, niestety, nie ma funkcji nazwie nazwa wydruku w C lub w Biblioteka CS50. Ale nie ważne, bo może zrobić to sami. Zadeklarować funkcji własnych i następnie wdrożyć go, możemy po prostu zrobić jakiś pokój w tym pliku i deklarują ta funkcja w następujący sposób, nieważne - co oznacza, że ​​funkcja nie jest rzeczywiście zamierza powrócić coś, nawet jeśli będzie to miało efekt uboczny - wydrukować nazwę, a następnie niech określić w nawiasie nazwa druku oczekuje argument typu string. A w ogóle, będziemy myśleć o, że jako nazwy. I otwórzmy nasze klamra i zamknąć naszą nawias. A następnie printf wewnątrz komentarzy przecinek Procent s nowa nazwa linii przecinek. Innymi słowy, chociaż Funkcja tylko jedna linia kodu, to ma teraz trochę większe Celem poziom do druku czyjeś imię z powitania. Teraz wewnątrz głównej, zauważysz, że jestem wzywając imienia druku przechodząc s. I tak wydaje mi się teraz, aby mieć kompletny program. Jedyna różnica jest z innymi mamy napisane jest, że nie tylko nie Ten program nie głównym, ma też deklaracja i realizacja nazwa wydruku, funkcja sama. Załóżmy teraz skompilować mój program z make Funkcja zero, i uruchomić go z kropką zerowania slash. Gdy pojawi się monit o moim imieniu Będę wpisać David. A ja rzeczywiście jestem witany z "Witaj, David." Teraz okazuje się, że bardzo świadomie zadeklarowana nazwa wydruku powyżej głównym, co mówi C z góry, że nie istnieje funkcja o nazwie print nazwać tak, że mogę korzystać to później w głównym. Teraz, gdybym zamiast umieścić nazwę drukarki w Dno moim pliku, a szczerze mówiąc prawdopodobnie powinien to zrobić, że główne szczątki Pierwszą rzeczą, że albo inny użytkownik widzi w kodzie, Okazuje się, że mój kod jest nie zamierza skompilować. W szczególności, jeśli wrócę do mojego okno terminalu i uruchom make funkcji zera teraz zauważyć, że jestem krzyknął. Jeśli przewijać się w moim oknie terminala, Zobaczymy to pierwszy błąd w kolorze czerwonym, niejawna deklaracja nazwa funkcji drukowania. Teraz, co to oznacza? Cóż, mimo że zostały wdrożone wydrukować nazwy w tym pliku, nie mam wdrożone go przed Mam stosować go w głównym. Teraz możemy wrócić do starych wersję i umieścić nazwę druku wdrożenie się do góry. Ale może zamiast po prostu dać C podpowiedź że istnieje funkcja przyjść. W szczególności, nad głównym mogę zadeklarować wydrukować nazwę tak jak ja wcześniej, ale zakończyć linię średnikiem, a tym samym obiecując realizacji, ale jeszcze nie faktycznie realizacji funkcji nazwie nazwa wydruku. Mogę wtedy głównym na górze moja złożyć jak miałem nadzieję, i może faktycznie wdrożenia nazwę wydruku na dole. Gdybym teraz wrócić do mojego oknie terminala i zerowania rekompilacji z marki, tym razem kompiluje. A jeśli uruchomię go z funkcji slash dot zera zapewniając moje imię, jestem powitany jako "Witaj, David."