W c możemy podzielić duży program na podstawowe elementy zwane funkcją. Funkcja zawiera zestaw instrukcji programistycznych ujętych w {}. Funkcja może być wywoływana wiele razy, aby zapewnić możliwość ponownego użycia i modułowość programu C. Inaczej mówiąc, możemy powiedzieć, że zbiór funkcji tworzy program. Funkcja jest również nazywana procedura Lub podprogram w innych językach programowania.
Zalety funkcji w C
Funkcje C mają następujące zalety.
- Używając funkcji, możemy uniknąć ciągłego przepisywania tej samej logiki/kodu w programie.
- Funkcje C możemy wywoływać dowolną liczbę razy w programie i z dowolnego miejsca w programie.
- Możemy łatwo śledzić duży program w C, jeśli jest on podzielony na wiele funkcji.
- Ponowne użycie jest głównym osiągnięciem funkcji C.
- Jednak wywoływanie funkcji jest zawsze obciążeniem w programie C.
Aspekty funkcjonalne
Istnieją trzy aspekty funkcji C.
SN | Aspekty funkcji C | Składnia |
---|---|---|
1 | Deklaracja funkcji | typ_powrotu nazwa_funkcji (lista argumentów); |
2 | Wywołanie funkcji | nazwa_funkcji (lista_argumentów) |
3 | Definicja funkcji | typ_powrotu nazwa_funkcji (lista argumentów) {treść funkcji;} |
Poniżej podano składnię tworzenia funkcji w języku c:
return_type function_name(data_type parameter...){ //code to be executed }
Rodzaje funkcji
W programowaniu C istnieją dwa typy funkcji:
Wartość zwracana
Funkcja C może, ale nie musi, zwracać wartość z funkcji. Jeśli nie musisz zwracać żadnej wartości z funkcji, użyj void jako typu zwracanego.
Zobaczmy prosty przykład funkcji C, która nie zwraca żadnej wartości z tej funkcji.
Przykład bez zwracanej wartości:
void hello(){ printf('hello c'); }
Jeśli chcesz zwrócić dowolną wartość z funkcji, musisz użyć dowolnego typu danych, takiego jak int, long, char itp. Typ zwracania zależy od wartości, która ma zostać zwrócona z funkcji.
ile lat ma Kylie Jenner
Zobaczmy prosty przykład funkcji C, która zwraca wartość int z tej funkcji.
Przykład z wartością zwracaną:
int get(){ return 10; }
W powyższym przykładzie musimy zwrócić 10 jako wartość, więc zwracanym typem jest int. Jeśli chcesz zwrócić wartość zmiennoprzecinkową (np. 10,2, 3,1, 54,5 itd.), musisz użyć float jako typu zwracanego przez metodę.
float get(){ return 10.2; }
Teraz musisz wywołać funkcję, aby uzyskać wartość funkcji.
Różne aspekty wywoływania funkcji
Funkcja może akceptować dowolny argument lub nie. Może, ale nie musi, zwracać jakąkolwiek wartość. W oparciu o te fakty istnieją cztery różne aspekty wywołań funkcji.
- funkcja bez argumentów i bez wartości zwracanej
- funkcja bez argumentów i z wartością zwracaną
- funkcja z argumentami i bez wartości zwracanej
- funkcja z argumentami i wartością zwracaną
Przykład funkcji bez argumentu i wartości zwracanej
Przykład 1
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Wyjście
Hello Javatpoint
Przykład 2
#include void sum(); void main() { printf(' Going to calculate the sum of two numbers:'); sum(); } void sum() { int a,b; printf(' Enter two numbers'); scanf('%d %d',&a,&b); printf('The sum is %d',a+b); }
Wyjście
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Przykład funkcji bez argumentu i zwracanej wartości
Przykład 1
#include int sum(); void main() { int result; printf(' Going to calculate the sum of two numbers:'); result = sum(); printf('%d',result); } int sum() { int a,b; printf(' Enter two numbers'); scanf('%d %d',&a,&b); return a+b; }
Wyjście
teoria automatów
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Przykład 2: program obliczający pole kwadratu
dynamiczna tablica Java
#include int sum(); void main() { printf('Going to calculate the area of the square '); float area = square(); printf('The area of the square: %f ',area); } int square() { float side; printf('Enter the length of the side in meters: '); scanf('%f',&side); return side * side; }
Wyjście
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Przykład funkcji z argumentem i bez wartości zwracanej
Przykład 1
#include void sum(int, int); void main() { int a,b,result; printf(' Going to calculate the sum of two numbers:'); printf(' Enter two numbers:'); scanf('%d %d',&a,&b); sum(a,b); } void sum(int a, int b) { printf(' The sum is %d',a+b); }
Wyjście
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Przykład 2: program obliczający średnią z pięciu liczb.
#include void average(int, int, int, int, int); void main() { int a,b,c,d,e; printf(' Going to calculate the average of five numbers:'); printf(' Enter five numbers:'); scanf('%d %d %d %d %d',&a,&b,&c,&d,&e); average(a,b,c,d,e); } void average(int a, int b, int c, int d, int e) { float avg; avg = (a+b+c+d+e)/5; printf('The average of given five numbers : %f',avg); }
Wyjście
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Przykład funkcji z argumentem i wartością zwracaną
Przykład 1
#include int sum(int, int); void main() { int a,b,result; printf(' Going to calculate the sum of two numbers:'); printf(' Enter two numbers:'); scanf('%d %d',&a,&b); result = sum(a,b); printf(' The sum is : %d',result); } int sum(int a, int b) { return a+b; }
Wyjście
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
Przykład 2: Program sprawdzający, czy liczba jest parzysta czy nieparzysta
#include int even_odd(int); void main() { int n,flag=0; printf(' Going to check whether a number is even or odd'); printf(' Enter the number: '); scanf('%d',&n); flag = even_odd(n); if(flag == 0) { printf(' The number is odd'); } else { printf(' The number is even'); } } int even_odd(int n) { if(n%2 == 0) { return 1; } else { return 0; } }
Wyjście
Going to check whether a number is even or odd Enter the number: 100 The number is even
Funkcje biblioteczne C
Funkcje biblioteczne to wbudowane funkcje w języku C, które są pogrupowane i umieszczone we wspólnym miejscu zwanym biblioteką. Funkcje takie służą do wykonywania określonych operacji. Na przykład printf jest funkcją biblioteczną używaną do drukowania na konsoli. Funkcje biblioteczne tworzone są przez projektantów kompilatorów. Wszystkie funkcje biblioteki standardowej C są zdefiniowane w różnych plikach nagłówkowych zapisanych z rozszerzeniem .H . Musimy uwzględnić te pliki nagłówkowe w naszym programie, aby móc korzystać z funkcji bibliotecznych zdefiniowanych w takich plikach nagłówkowych. Na przykład, aby korzystać z funkcji bibliotecznych, takich jak printf/scanf, musimy uwzględnić w naszym programie stdio.h, który jest plikiem nagłówkowym zawierającym wszystkie funkcje biblioteczne dotyczące standardowego wejścia/wyjścia.
Listę najczęściej używanych plików nagłówkowych podano w poniższej tabeli.
SN | Plik nagłówkowy | Opis |
---|---|---|
1 | stdio.h | Jest to standardowy plik nagłówkowy wejścia/wyjścia. Zawiera wszystkie funkcje biblioteczne dotyczące standardowych wejść/wyjść. |
2 | koniusz.h | To jest plik nagłówkowy wejścia/wyjścia konsoli. |
3 | ciąg.h | Zawiera wszystkie funkcje biblioteczne związane z ciągami znaków, takie jak gets(), puts() itp. |
4 | stdlib.h | Ten plik nagłówkowy zawiera wszystkie ogólne funkcje biblioteczne, takie jak malloc(), calloc(), exit() itp. |
5 | matematyka.h | Ten plik nagłówkowy zawiera wszystkie funkcje związane z operacjami matematycznymi, takie jak sqrt(), pow() itp. |
6 | czas.godz | Ten plik nagłówkowy zawiera wszystkie funkcje związane z czasem. |
7 | ctype.h | Ten plik nagłówkowy zawiera wszystkie funkcje obsługi znaków. |
8 | stdarg.h | W tym pliku nagłówkowym zdefiniowano zmienne funkcje argumentów. |
9 | sygnał.h | Wszystkie funkcje obsługi sygnału są zdefiniowane w tym pliku nagłówkowym. |
10 | setjmp.h | Ten plik zawiera wszystkie funkcje skoku. |
jedenaście | ustawienia regionalne.h | Ten plik zawiera funkcje regionalne. |
12 | errno.h | Ten plik zawiera funkcje obsługi błędów. |
13 | twierdzić.h | Ten plik zawiera funkcje diagnostyczne. |
Dodatkowe szczegóły dotyczące funkcji C podano poniżej:
Istnieje kilka dodatkowych informacji związanych z funkcjami języka C. Niektóre z nich są następujące:
Programowanie modułowe: Zdolność do dzielić A ogromny program na mniejsze, łatwiejsze w zarządzaniu moduły to jedna z głównych zalet korzystania z funkcji w C. Każda funkcja może zawierać określone zadanie lub składnik funkcjonalności, co usprawnia i wyjaśnia ogólną strukturę programu. Ta modułowa strategia usprawnia ponowne wykorzystanie kodu i ułatwia konserwację i debugowanie.
redukcja Pythona
Ponowne użycie kodu: Korzystając z funkcji, możesz utworzyć określony algorytm lub element logiki tylko raz i używać go wielokrotnie w całym programie. Możesz po prostu wywołać tę funkcję w dowolnym momencie, gdy chcesz uruchomić kod, dzięki czemu nie musisz duplikować go w innym miejscu. To nie tylko przyspiesza rozwój ale także zapewnia spójność i zmniejsza możliwość popełniania błędów.
Hermetyzacja i abstrakcja: Zasłaniając specyfikę implementacji funkcjonalności, funkcje oferują poziom abstrakcji. Interfejs prototypu funkcji można zdefiniować w pliku a plik nagłówkowy , podczas gdy rzeczywistą implementację można dostarczyć w innym pliku źródłowym. Inne części programu mogą korzystać z tej funkcji bez konieczności zrozumienia, w jaki sposób jest ona wewnętrznie zaimplementowana ze względu na oddzielenie interfejsu i implementacji.
Łatwa konserwacja programu: Program można łatwiej zrozumieć i utrzymać, jeśli zostanie on podzielony na mniejsze funkcje. Możliwość przypisania określonej odpowiedzialności do każdej funkcji sprawia, że kod jest bardziej czytelny i ułatwia rozwiązywanie problemów i debugowanie. Jeśli zostanie znaleziony błąd lub konieczna będzie modyfikacja, możesz skoncentrować się na niezbędnej funkcji, nie wpływając na inne części programu.
Lepsza współpraca: Funkcje umożliwiają współpracę programistom pracującym nad tym samym projektem. Program można podzielić na funkcje, tak aby mogło nad nim pracować kilku członków zespołu różne funkcje natychmiast. Programiści mogą płynnie integrować swoją pracę z funkcjami, jeśli interfejsy są dobrze określone, co poprawia produktywność i sprzyja efektywnemu rozwojowi.
Przekazanie parametru: Możesz wysyłać argumenty lub dane do funkcji w C, aby mogła je przetworzyć. Funkcja może wykonywać działania i generować wyniki przy użyciu tych danych wejściowych. Możesz zwiększyć elastyczność i możliwości adaptacji funkcji, przekazując parametry, co zwiększy ogólną wszechstronność programu.
Zwracane wartości: Funkcje mogą wysyłać wartości z powrotem do kodu, który je wywołał, umożliwiając komunikację wyników wykonania funkcji. Możesz wykorzystać zwróconą wartość w innych obszarach programu po wykonaniu obliczeń lub manipulacji danymi w ramach funkcji. Zwróć wartości są szczególnie przydatne, gdy trzeba obliczyć wynik lub ustalić warunek w zależności od wyniku funkcji.
Wniosek:
Podsumowując, funkcje są niezbędne w programowaniu w C, ponieważ dają program organizacja, możliwość ponownego użycia i modułowość . Programiści mogą uniknąć wielokrotnego tworzenia tego samego kodu, dzieląc ogromne programy na mniejsze funkcje, dzięki czemu kod będzie bardziej efektywny i prostszy w utrzymaniu. W dowolnym miejscu programu można wywołać funkcję, zapewniając elastyczność i usprawniając przepływ sterowania.
The oświadczenie, zadzwoń , I definicja funkcji to tylko kilka z ich wielu cech. Kompilator jest informowany przez deklarację funkcji imię, argumenty , I typ zwrotu . Możliwe jest wywołanie funkcji z lub bez parametry i z lub bez wartość zwracana . Programiści konstruują funkcje zdefiniowane przez użytkownika, aby poprawić czytelność i optymalizację swojego kodu, podczas gdy biblioteka C działa podobnie printf() I skanf() zapewniają wstępnie ustawione możliwości.
Ogólnie rzecz biorąc, funkcje są kluczowymi elementami programowania w języku C, zapewniającymi korzyści, w tym lepszą organizację, ponowne wykorzystanie kodu i proste śledzenie dużych programów. Wywołania funkcji mogą powodować pewne obciążenie, ale ich zalety przewyższają minimalny spadek wydajności. Programiści mogą pisać efektywne i modułowe programy w C, rozumiejąc i używając funkcji.