[Powered by Google Translate] CHRIS GERBER: funkcja jest szereg kroków w większy program, który jest przeznaczony do zwykle nazywane wiele razy i z wielu innych miejsc w program. Podczas tworzenia funkcji C, jednym z warunków jest określić typ wartości zwracanej. Najprostszym przypadkiem jest sytuacja, gdy dzwoni kod nie dotyczy wyniku funkcji. Może to mieć miejsce w przypadku, gdy są drukowane dane użytkownika wyświetlacz, jak w printf. W tym przypadku możemy zadeklarować wartości zwracanej być typu pustki. Korzystanie pustkę po prostu mówi kompilatorowi, że nie wartość zostanie zwrócona. Zobaczmy, jak to wygląda. Powiedzmy, że mamy funkcję o nazwie say_hello że przyjmuje jeden argument. Będziemy go przekazywać nazwisko osoby i wyświetli pozdrowienie na ekranie. Nazwa będzie typu char *. I będziemy określić, jako argumentu. Moja aplikacja nie musi wiedzieć, co zostało wydrukowane, lub jeśli został wydrukowany. Tak więc wartość zwracana będzie typu void. Funkcja ta może drukować na ekran z poleceniem printf ("Hello,% s \ n ", Name);. Powitanie będzie wyświetlane i kontrola zostanie przekazana z powrotem do kodu wywołującego. Warto zauważyć, że gdy wartość zwracana jest typu void, nie trzeba uwzględniać zwrot Oświadczenie w tej funkcji. Jeśli zdecydujesz się na to jeden, nie obejmują wartości zwracanej jako argument. W niektórych przypadkach, ma sens, aby powrócić wartość z funkcji. Powiedzmy, że pisaliśmy funkcję o nazwie add_floats. Będziemy przekazywać mu dwa argumenty, zarówno pływaków, zwany pierwszy i drugi. I to nam powiedzieć, co suma tych pływaków jest. Wiemy, że jeśli dodamy dwa pływaki razem wynik będzie float. Biorąc pod uwagę, że mamy wybierać zwracanie typu float. Ta funkcja będzie wykonywać te obliczenia i powrócić wartości w oświadczeniu jak powrót pierwszy + drugi;. Gdy kontrola jest przekazywana z powrotem do kodu wywołującego, Uzyskana wartość jest obecnie dostępna dla tego kodu. Możemy przechowywać tę wartość tak: wynik = pływak add_floats (3,14, 1,62 ). Wynik w tym przypadku będzie teraz zawierać wartość 4,76. Przypominamy, zmiennoprzecinkowe są nieprecyzyjne. Więc jeśli jest to kalkulacja finansowa, za pomocą dolarów i centów, możemy zastanowić się nad dokładną typ danych, takich jak int i wykonywać obliczenia w groszach. Innym przypadkiem, gdy chcielibyśmy zwrócić wartość z funkcja jest, kiedy chcemy wiedzieć, czy funkcja została skuteczne. Jeśli to nie był udany, możemy również chce wiedzieć, jaki typ wystąpił błąd. Powiedzmy, że chcemy, aby otworzyć plik na dysku, aby liczyć Liczba w nim znaków. Jeśli plik nie może zostać otwarty, chcemy być w stanie zatrzymać i poinformować użytkownika o problemie. Zadzwonimy nasze count_file_chars funkcji i będzie przyjmować jeden argument. Będziemy przechodzić w nazwie pliku przy użyciu char * nazwie filename. Funkcja ta może wyglądać tak. W tym przykładzie, można oczekiwać, aby powrócił Ilość jest 0 lub więcej. To pozostawia nam ujemne liczby całkowite w używać jako wartości wskaźnikowych. Wartość Sentinel jest specjalna wartość nie jest uzasadnionych danych, ale nie przekazują informacje. Tutaj, jeśli wrócę -1 do kodu wywołującego, jestem faktycznie wysłać wiadomość, że wystąpił błąd podczas próbuje uzyskać dostęp do pliku. Mógłbym wtedy sprawdzić, czy wartości zwracanej do określenia, czy moje wywołanie funkcji powiodło. Jeśli liczba wynosiła 0 lub większa, to wiem Liczba znaków w pliku. Jeżeli jednak liczba była mniejsza niż 0, i może po prostu wydrukować, że problem miał miejsce. Jeden kompromis do rozważenia jest to, że zastrzegając wszystkie jako wartości ujemne wartości wskaźnikowych, zakładając, że jest 32-bitowa liczba całkowita, mam zasadniczo zabrać około 2 miliardy możliwych wartości zwracanych. Typy wartości Zwracane są jednym z najważniejszych elementów wywołań funkcji. Mam nadzieję, że ten krótki przegląd pomógł myślisz o trzy główne typy: void, wartości wyników i wartości wskaźnikowych a każdy z tych trzech może być odpowiednio w kodzie. Dzięki za oglądanie.