[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.