V c můžeme rozdělit velký program na základní stavební bloky známé jako funkce. Funkce obsahuje sadu programovacích příkazů uzavřených v {}. Funkci lze volat vícekrát, aby byla zajištěna opětovná použitelnost a modularita programu C. Jinými slovy, můžeme říci, že kolekce funkcí vytváří program. Funkce je také známá jako postup nebo podprogram v jiných programovacích jazycích.
Výhoda funkcí v C
Funkce C mají následující výhody.
- Pomocí funkcí se můžeme vyhnout opakovanému přepisování stejné logiky/kódu v programu.
- C funkce můžeme volat kolikrát v programu a z libovolného místa v programu.
- Můžeme snadno sledovat velký program v jazyce C, když je rozdělen do více funkcí.
- Opětovná použitelnost je hlavním úspěchem funkcí C.
- Volání funkcí je však v programu C vždy režií.
Funkční aspekty
Funkce C má tři aspekty.
SN | Aspekty funkce C | Syntax |
---|---|---|
1 | Deklarace funkce | návratový_typ název_funkce (seznam argumentů); |
2 | Volání funkce | název_funkce (seznam_argumentů) |
3 | Definice funkce | návratový_typ název_funkce (seznam argumentů) {tělo funkce;} |
Syntaxe vytváření funkce v jazyce c je uvedena níže:
return_type function_name(data_type parameter...){ //code to be executed }
Typy funkcí
V programování C existují dva typy funkcí:
Návratová hodnota
Funkce C může nebo nemusí vracet hodnotu z funkce. Pokud nemusíte vracet žádnou hodnotu z funkce, použijte jako návratový typ void.
Podívejme se na jednoduchý příklad funkce C, která nevrací žádnou hodnotu z funkce.
Příklad bez návratové hodnoty:
void hello(){ printf('hello c'); }
Pokud chcete vrátit jakoukoli hodnotu z funkce, musíte použít libovolný datový typ, jako je int, long, char atd. Návratový typ závisí na hodnotě, která má být vrácena z funkce.
formátovat datum na řetězec
Podívejme se na jednoduchý příklad funkce C, která vrací hodnotu int z funkce.
Příklad s návratovou hodnotou:
int get(){ return 10; }
Ve výše uvedeném příkladu musíme vrátit 10 jako hodnotu, takže návratový typ je int. Pokud chcete vrátit hodnotu s plovoucí desetinnou čárkou (např. 10,2, 3,1, 54,5 atd.), musíte jako návratový typ metody použít float.
float get(){ return 10.2; }
Nyní musíte zavolat funkci, abyste získali hodnotu funkce.
python uložit json do souboru
Různé aspekty volání funkcí
Funkce může nebo nemusí přijmout jakýkoli argument. Může nebo nemusí vrátit žádnou hodnotu. Na základě těchto skutečností existují čtyři různé aspekty volání funkcí.
- funkce bez argumentů a bez návratové hodnoty
- funkce bez argumentů a s návratovou hodnotou
- funkce s argumenty a bez návratové hodnoty
- funkce s argumenty a návratovou hodnotou
Příklad funkce bez argumentu a návratové hodnoty
Příklad 1
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Výstup
Hello Javatpoint
Příklad 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); }
Výstup
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Příklad funkce bez argumentu as návratovou hodnotou
Příklad 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; }
Výstup
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Příklad 2: program pro výpočet plochy čtverce
chromový adresní řádek
#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; }
Výstup
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Příklad funkce s argumentem a bez návratové hodnoty
Příklad 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); }
Výstup
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Příklad 2: program pro výpočet průměru pěti čísel.
#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); }
Výstup
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Příklad funkce s argumentem a návratovou hodnotou
Příklad 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; }
Výstup
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
Příklad 2: Program pro kontrolu, zda je číslo sudé nebo liché
#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; } }
Výstup
Going to check whether a number is even or odd Enter the number: 100 The number is even
Funkce knihovny C
Knihovní funkce jsou funkce vestavěné v C, které jsou seskupeny a umístěny na společném místě zvaném knihovna. Tyto funkce se používají k provádění některých specifických operací. Například printf je funkce knihovny používaná k tisku na konzole. Knihovní funkce jsou vytvářeny návrháři překladačů. Všechny funkce standardní knihovny C jsou definovány uvnitř různých hlavičkových souborů uložených s příponou .h . Tyto hlavičkové soubory musíme zahrnout do našeho programu, abychom mohli využívat funkce knihovny definované v těchto hlavičkových souborech. Například pro použití funkcí knihovny, jako je printf/scanf, musíme do našeho programu zahrnout stdio.h, což je hlavičkový soubor, který obsahuje všechny funkce knihovny týkající se standardního vstupu/výstupu.
Seznam nejčastěji používaných hlavičkových souborů je uveden v následující tabulce.
SN | Soubor záhlaví | Popis |
---|---|---|
1 | stdio.h | Toto je standardní vstupní/výstupní hlavičkový soubor. Obsahuje všechny funkce knihovny týkající se standardního vstupu/výstupu. |
2 | conio.h | Toto je vstupní/výstupní hlavičkový soubor konzoly. |
3 | řetězec.h | Obsahuje všechny funkce knihovny související s řetězci, jako je get(), puts(), atd. |
4 | stdlib.h | Tento hlavičkový soubor obsahuje všechny obecné funkce knihovny jako malloc(), calloc(), exit() atd. |
5 | matematika.h | Tento hlavičkový soubor obsahuje všechny funkce související s matematickými operacemi, jako je sqrt(), pow() atd. |
6 | čas.h | Tento hlavičkový soubor obsahuje všechny funkce související s časem. |
7 | ctype.h | Tento hlavičkový soubor obsahuje všechny funkce pro zpracování znaků. |
8 | stdarg.h | V tomto hlavičkovém souboru jsou definovány funkce proměnných argumentů. |
9 | signál.h | V tomto hlavičkovém souboru jsou definovány všechny funkce zpracování signálu. |
10 | setjmp.h | Tento soubor obsahuje všechny funkce skoku. |
jedenáct | locale.h | Tento soubor obsahuje funkce národního prostředí. |
12 | errno.h | Tento soubor obsahuje funkce zpracování chyb. |
13 | tvrdit.h | Tento soubor obsahuje diagnostické funkce. |
Další podrobnosti týkající se funkcí C jsou uvedeny níže:
Existuje několik dalších informací souvisejících s funkcemi C. Některé z nich jsou následující:
Modulární programování: Schopnost rozdělit A obrovský program do menších, lépe spravovatelných modulů je jednou z hlavních výhod využití funkcí v C. Každá funkce může obsahovat určitou úlohu nebo komponent funkčnosti, což zefektivňuje a vyjasňuje celkovou strukturu programu. Tato modulární strategie zlepšuje opětovné použití kódu a usnadňuje údržbu a ladění.
localdate java
Opětovné použití kódu: Pomocí funkcí můžete vytvořit určitý algoritmus nebo část logiky pouze jednou a opakovaně je používat ve svém programu. Funkci můžete zavolat kdykoli, když potřebujete spustit kód, což vám ušetří nutnost duplikovat jej jinde. Nejen to urychluje vývoj ale také zajišťuje konzistenci a snižuje možnost dělat chyby.
Zapouzdření a abstrakce: Tím, že zakrývají specifika implementace funkčnosti, funkce nabízejí úroveň abstrakce. Rozhraní prototypu funkce lze definovat v a hlavičkový soubor , zatímco skutečná implementace může být poskytnuta v jiném zdrojovém souboru. Jiné části programu mohou funkci využívat, aniž by musely rozumět tomu, jak je interně implementována, protože rozhraní a implementace jsou odděleny.
Snadná údržba programu: Program lze snáze pochopit a udržovat, pokud je rozdělen na menší funkce. Možnost přiřadit konkrétní odpovědnost každé funkci činí kód čitelnějším a usnadňuje odstraňování problémů a ladění. Pokud je nalezena chyba nebo je nutná úprava, můžete se soustředit na nezbytnou funkci bez dopadu na jiné části programu.
Vylepšená spolupráce: Funkce umožňují vývojářům pracujícím na stejném projektu spolupracovat. Program lze rozdělit do funkcí, aby na něm mohlo pracovat několik členů týmu různé funkce najednou. Vývojáři mohou hladce integrovat svou práci do funkcí, pokud jsou rozhraní dobře specifikována, což zvyšuje produktivitu a podporuje efektivní vývoj.
Předání parametru: Argumenty nebo data můžete posílat funkci v C, aby je mohla zpracovat. Funkce může provádět akce a generovat výsledky pomocí těchto vstupů. Předáním parametrů můžete zvýšit flexibilitu a přizpůsobivost funkcí, což zvýší celkovou všestrannost vašeho programu.
Návratové hodnoty: Funkce mohou posílat hodnoty zpět do kódu, který je volal, což umožňuje komunikaci výsledků provádění funkce. Vrácenou hodnotu můžete využít v jiných oblastech programu po provedení výpočtů nebo manipulaci s daty v rámci funkce. Návratové hodnoty jsou zvláště užitečné, když potřebujete vypočítat výsledek nebo stanovit podmínku v závislosti na výstupu funkce.
Závěr:
Závěrem lze říci, že funkce jsou pro programování v C zásadní, protože dávají program organizace, znovupoužitelnost a modularita . Vývojáři se mohou vyhnout opakovanému vytváření stejného kódu rozdělením velkých programů na menší funkce, čímž se kód stane efektivnější a jednodušší na údržbu. Kdekoli v programu lze volat funkci, což poskytuje flexibilitu a zlepšuje tok řízení.
The prohlášení, hovor , a definice funkcí jsou jen některé z jejich mnoha charakteristik. Kompilátor je informován deklarací funkce jméno, argumenty , a návratový typ . Je možné volat funkci s nebo bez parametry a s nebo bez a návratová hodnota . Programátoři konstruují uživatelsky definované funkce, aby zlepšili čitelnost a optimalizaci svého kódu, zatímco funkce knihovny C mají rádi printf() a scanf() poskytují přednastavené funkce.
Celkově jsou funkce zásadními stavebními kameny v programování v jazyce C a poskytují výhody včetně lepší organizace, opětovného použití kódu a jednoduchého sledování velkých programů. Volání funkcí by mohlo přidat určitou režii, ale jejich výhody převažují nad minimálním zásahem do výkonu. Programátoři mohou psát efektivní a modulární C programy pochopením a používáním funkcí.