Ipakilala sa iyo ng artikulong ito ang isang simple ngunit napaka-pangunahing at mahalaga konsepto na Function sa C at sundin ito sa isang pagpapakita. Saklaw ang artikulong ito sa artikulong ito,
- Ano ang Mga Pag-andar sa C?
- Mga kalamangan ng Pag-andar sa C
- Mga Uri ng Pag-andar sa C
- Pagpapahayag ng Pag-andar at Kahulugan
- Pagtawag sa isang Pag-andar
- Mga uri ng Tungkulin na Tinukoy ng Gumagamit sa C
- Walang naipasang mga argumento at walang Halaga ng pagbabalik
- Walang naipasang mga argumento ngunit isang halaga ng pagbabalik
- Lumipas ang pangangatwiran ngunit walang halaga ng pagbabalik
- Naipasa ang argumento at isang halaga ng pagbabalik
- C Mga Pag-andar sa Library
Ang mga pagpapaandar ay pagbubuo ng mga bloke ng anumang wika ng programa. Sa mga simpleng salita, gumana sa isang hanay ng mga pahayag, na kumukuha ng mga input, magsagawa ng isang tukoy na gawain at pagkatapos ay ibabalik ang output.
Ang ideolohiya sa likod ng paglikha ng pag-andar ay upang magbigkis ng isang hanay ng mga kaugnay na pahayag na magkasama na gumaganap ng isang tiyak na gawain. Kaya't, hindi mo kailangang isulat ang parehong code nang maraming beses para sa iba't ibang mga hanay ng mga input. Kailangan mo lamang tawagan ang pagpapaandar para sa iba't ibang mga input, isasagawa nito ang tinukoy na gawain para sa ibinigay na input at ibalik ang output. Maaari mong tawagan ang pagpapaandar nang maraming beses hangga't gusto mo. Sa blog na ito, matututunan namin ang bawat isa at bawat pananarinari tungkol sa mga pagpapaandar sa wika ng C programa.
Magsimula tayo sa pinakamahalagang tanong.
Ano ang Mga Pag-andar sa C?
Ang mga pagpapaandar ay pareho sa C tulad ng anumang iba pang wika sa pagprograma. Ito ay isang hanay ng mga code na nagbubuklod upang maisagawa ang isang tukoy na gawain. Ang hanay ng code na naisakatuparan ay tinukoy sa mga kulot na tirante, ibig sabihin ay '{}'.
Bago malaman kung paano sumulat ng isang pag-andar sa C, unahin muna natin kung ano ang mga kalamangan.
Mga kalamangan ng Pag-andar sa C
Ang mga kalamangan ng pag-andar ay karaniwan sa lahat ng mga wika ng programa.
Ang pangunahing ideya sa likod ng pag-andar ay upang mabawasan ang kalabisan sa code. Ipagpalagay na mayroon kang isang pagpapaandar na kailangang gumanap ng maraming beses sa isang programa, kaya sa halip na isulat ito ng maraming beses, maaari kang lumikha ng isang pagpapaandar para sa gawaing iyon at tawagan ito ng maraming beses hangga't gusto mo. Ang isa pang nakatagong benepisyo ay, kung ang lohika ng iyong pag-andar ay nagbago pagkatapos, kung gayon hindi mo na kailangang magpatuloy at baguhin ito sa maraming lugar. Kailangan mo lamang baguhin ang code sa isang lugar (ibig sabihin, sa pagpapaandar) at makikita ito sa buong programa.
Modularity sa muli ng isang idinagdag na benepisyo. Ang pagsulat ng isang malaking piraso ng code kasama ang bawat isa at lahat, binabawasan ang kakayahang mabasa ng code at ginagawang mahirap pamahalaan. Maaari mong hatiin ang code sa mga seksyon para sa mga indibidwal na pag-andar na gumagamit ng mga pag-andar, na kung saan ay mas madaling maunawaan at mas madaling pamahalaan.
Nagbibigay din ang pagpapaandar ng abstraction, kung saan maaari kaming tumawag sa isang pagpapaandar at makuha ang output nang hindi alam ang panloob na pagpapatupad.
Pagpapatuloy sa mga uri ng Pag-andar C
Mga Uri ng Pag-andar sa C
Mayroong dalawang uri ng mga pagpapaandar:
Mga pagpapaandar sa library
Mga pagpapaandar na tinukoy ng gumagamit
halimbawa ng mga object ng java
Ang mga pagpapaandar sa library ay ang mga pagpapaandar na natukoy na sa C library tulad ng strcat (), printf (), scanf () atbp. Kailangan mo lamang isama ang naaangkop na mga file ng header upang magamit ang mga pagpapaandar na ito.
Ang mga pagpapaandar na tinukoy ng gumagamit ay ang mga pagpapaandar na tinukoy ng gumagamit. Ang mga pagpapaandar na ito ay ginawa para sa muling paggamit ng code at para sa pag-save ng oras at puwang.
Ngayon alam na natin ang mga pakinabang ng paglikha ng isang pag-andar maunawaan natin kung paano ideklara ang isang pagpapaandar sa C.
Pagpapahayag ng Pag-andar at Kahulugan
Pagpapahayag ng Pag-andar:
Syntax ng deklarasyon ng pagpapaandar:
return_type function_name (data_type arg1, data_type arg2) int add (int x, int y) // function declaration
Sa Pagdeklara ng Pag-andar, tinutukoy namin ang pangalan ng pagpapaandar, ang bilang ng input parameter, ang kanilang mga datatypes at ang uri ng pagbabalik ng pagpapaandar. Ang deklarasyon ng pagpapaandar ay nagsasabi sa tagatala tungkol sa listahan ng mga argumento na inaasahan ng pagpapaandar sa kanilang mga uri ng data at ang uri ng pagbabalik ng pagpapaandar.
Sa pagdeklara ng pagpapaandar, ang pagtukoy sa mga pangalan ng parameter ay opsyonal, ngunit ang pagtukoy ng kanilang mga uri ng data ay sapilitan.
int add (int, int) // pagdedeklara ng pagpapaandar
Ang tinukoy na pag-andar sa itaas ay kukuha ng dalawang mga parameter ng integer.
Kahulugan ng Pag-andar
int add (int, int) // function declaration return_type function_name (parameter) {Function body}
Tulad ng ipinakita sa imaheng nasa itaas ang kahulugan ng pag-andar ay binubuo ng dalawang bahagi ibig sabihin, header ng pag-andar at katawan ng pag-andar
Pag-andar ng Header: ang header ng pag-andar ay kapareho ng deklarasyon ng pag-andar nang wala ang semicolon. Naglalaman ang pagpapaandar ng header ng pangalan ng pag-andar, parameter at uri ng pagbabalik.
Uri ng Pagbabalik: Ang uri ng pagbabalik ay ang uri ng data ng halaga na ibabalik ng pagpapaandar. Ang function ay maaaring o hindi maaaring ibalik ang isang halaga. Kung gagawin ito pagkatapos ay ang uri ng data ng halagang pagpapanatili ay dapat na tukuyin, kung hindi man ang uri ng pagbalik ay kailangang walang bisa.
Pangalan ng Pag-andar: Ito ang pangalan ng pagpapaandar gamit ang kung saan maaari naming tawagan ang pagpapaandar kung kailan at saan kinakailangan.
Mga Parameter: Ang mga parameter ay ang mga halaga ng pag-input na ipapasa sa pagpapaandar. Sinasabi nito ang tungkol sa mga uri ng data ng mga argumento, ang kanilang pagkakasunud-sunod at ang bilang ng mga argumento na ipapasa sa pagpapaandar. Ang mga parameter ay opsyonal. Maaari ka ring magkaroon ng mga pagpapaandar nang walang mga parameter.
Pag-andar ng Katawan: Ang function body ay ang hanay ng pahayag na nagsasagawa ng isang tukoy na gawain. Tinutukoy nito kung ano ang ginagawa ng pagpapaandar.
Halimbawa:
int add (int x, int y) {int sum = x + y return (sum)}
Inirerekumenda na ideklara ang isang pagpapaandar bago namin tukuyin at gamitin ito. Sa C, maaari naming ideklara at tukuyin ang pag-andar sa parehong lugar.
Halimbawa:
#include int add (int, int) // function declaration // function kahulugan int add (int x, int y) // function header {// function body int sum = x + y return (sum)} // Main Function int main () {int sum = add (23, 31) printf ('% d', sum) ibalik 0}
Tulad ng nakikita natin sa nabanggit na halimbawa na tinatawagan namin ang pagpapaandar gamit ang int sum = add (23, 31) na pahayag. Ang naibalik na halaga mula sa pagpapaandar ay nakaimbak sa variable ng kabuuan.
Bago tayo magpatuloy, may isa pang mahalagang konsepto upang maunawaan ang tungkol sa parament. Mayroong dalawang uri ng parameter:
Tunay na Parameter : Ang mga parameter na ipinapasa sa mga pagpapaandar habang tumatawag sa kanila ay kilala bilang aktwal na parameter. Halimbawa, ang 23 at 31 sa halimbawa sa itaas ay ang aktwal na mga parameter.
Pormal na Parameter : Ang mga parameter na natanggap ng mga pag-andar ay kilala bilang pormal na mga parameter. Halimbawa, ang x & y sa nabanggit na halimbawa ay ang mga pormal na parameter.
Mabilis tayong magpatuloy at maunawaan ang iba't ibang mga paraan ng pagtawag sa isang pagpapaandar sa C.
Pagtawag sa isang Pag-andar
Mayroong dalawang paraan kung saan maaari kaming tumawag sa isang pagpapaandar:
- Tumawag ayon sa halaga
- Tumawag sa pamamagitan ng sanggunian
Tumawag ayon sa halaga
Sa tawag sa pamamagitan ng paraan ng halaga, ang halaga ng aktwal na parameter ay naipasa bilang isang argument sa pagpapaandar. Ang halaga ng aktwal na parameter ay hindi mababago ng mga pormal na parameter.
Sa paraan ng halaga ng call be, ang iba't ibang address ng memorya ay inilalaan sa pormal at aktwal na mga parameter. Ang halaga lamang ng aktwal na parameter ay nakopya sa pormal na parameter.
Halimbawa:
# isama ang walang bisa na Call_By_Value (int num1) {num1 = 42 printf ('nInside Function, Number is% d', num1)} int main () {int num num = 24 printf ('nBe Before Function, Number is% d', num ) Call_By_Value (num) printf ('nAfter Function, Number is% dn', num) return 0}
Paglabas
Sa halimbawa sa itaas, bago tumawag ayon sa pagpapaandar ng halaga, ang halaga ng num ay 24. Pagkatapos, sa sandaling tawagan natin ang pagpapaandar at ipasa ang halaga, at baguhin ito sa loob ng pag-andar, ito ay magiging 42. Kapag bumalik kami at muling nai-print ang halaga ng num sa pangunahing pagpapaandar, ito ay nagiging 24.
kung paano ipakita ang array sa php
Tumawag sa pamamagitan ng sanggunian
Sa tawag sa pamamagitan ng sanggunian, ang memorya ng address ng aktwal na parameter ay naipasa sa pagpapaandar bilang argument. Dito, ang halaga ng aktwal na parameter ay maaaring mabago ng pormal na parameter.
Ginagamit ang parehong address ng memorya para sa parehong aktwal at pormal na parameter. Kaya, kung ang halaga ng pormal na parameter ay nabago, ito ay makikita rin ng aktwal na parameter.
Sa C ginagamit namin ang mga payo upang ipatupad ang tawag sa pamamagitan ng sanggunian. Tulad ng nakikita mo sa halimbawa sa ibaba, ang pagpapaandar ng Call_By_Referensya ay umaasa sa isang pointer sa isang integer.
Ngayon, ang variable na num1 na ito ay mag-iimbak ng address ng memorya ng aktwal na parameter. Kaya, upang mai-print ang halagang nakaimbak sa address ng memorya na itinuro ng num1 kailangan nating gumamit ng operator ng dereferensya ibig sabihin *. Kaya, ang halaga ng * num1 ay 42.
Ang operator ng address at ginagamit upang makuha ang address ng isang variable ng anumang uri ng data. Kaya't sa pahayag ng pag-andar ng tawag na 'Call_By_Referensi (& num)', naipasa ang address ng num upang mabago ang num gamit ang address nito.
Halimbawa
# isama // // kahulugan ng pag-andar na walang bisa Call_By_Referensi (int * num1) {* num1 = 42 printf ('nInside Function, Number is% d', * num1)} // Main Function int main () {int num num = 24 printf ( 'n Bago ang Pag-andar, ang numero ay% d', num) Call_By_Referensi (& num) printf ('nAfter Function, Ang numero ay% dn', num) ibalik 0}
Paglabas
Sa halimbawang ito, ang halaga ng num ay 24 una, sa loob ng pangunahing pagpapaandar. Sa sandaling naipasa ito sa pag-andar ng Call_By_Referensi at ang halaga ay binago ng pormal na parameter, nabago din ito para sa aktwal na parameter. Ito ang dahilan kung bakit kapag nagpi-print kami ng halaga ng num pagkatapos ng pag-andar ay naglilimbag ito ng 42.
Ang paglipat sa mga uri ng pagpapaandar na tinukoy ng gumagamit sa C
Mga uri ng Tinukoy ng Gumagamit Pag-andar sa C
Mayroong iba't ibang mga pag-andar na tinukoy ng gumagamit batay sa uri ng pagbabalik at mga argumentong naipasa.
Pagpatuloy sa Walang naipasang mga argumento at walang halaga ng pagbabalik
1. Walang naipasang mga argumento at walang Halaga ng pagbabalik
Syntax:
deklarasyon ng pag-andar:
void function () function call: function () function kahulugan: void function () {pahayag}
Halimbawa
# isama ang void add () void add () {int x = 20 int y = 30 int sum = x + y printf ('sum% d', sum)} int main () {add () return 0}
Ang pagpapatuloy sa Walang mga argumentong naipasa ngunit isang halaga ng pagbabalik
2 Walang mga argumentong naipasa ngunit isang halaga ng pagbabalik
Syntax:
deklarasyon ng pag-andar:
int function () function call: function () function kahulugan: int function () {pahayag bumalik a}
Halimbawa:
# isama ang int add () int add () {int x = 20 int y = 30 int sum = x + y return (sum)} int main () {int sum sum = add () printf ('sum% d', kabuuan) ibalik 0}
Ang paglipat sa mga Argumento ay naipasa ngunit walang halaga ng pagbabalik
3 Argument ang naipasa ngunit walang halaga ng pagbabalik
Syntax:
deklarasyon ng pag-andar:
void function (int) function call: function (a) function kahulugan: void function (int a) {pahayag}
Halimbawa:
# isama ang void add (int, int) void add (int x, int y) {int sum = x + y return (sum)} int main () {add (23, 31) return 0}
Ang paglipat sa Argument na naipasa at isang halaga ng pagbabalik
4 Naipasa ang argumento at isang halaga ng pagbabalik
Syntax:
deklarasyon ng pag-andar:
int function (int) function call: function (a) function kahulugan: int function (int a) {pahayag bumalik a}
Halimbawa
# isama ang int add (int, int) int add (int x, int y) {int sum = x + y return (sum)} int main () {int sum = add (23, 31) printf ('% d' , kabuuan) ibalik 0}
Ngayon ay mabilis nating tingnan ang mga pagpapaandar ng C library na kung saan ay mahalaga upang makapagsulat ng isang programa.
C Mga Pag-andar sa Library
Ang mga pagpapaandar sa library ay mga pagpapaandar sa C na paunang natukoy at naroroon bilang default. Kailangan mo lamang isama ang tukoy na header file sa programa at maaari mong gamitin ang mga pagpapaandar na tinukoy sa header file na iyon. Nagbibigay ang bawat file ng header ng tukoy na uri ng pag-andar. Ang extension ng header file ay .h.
Halimbawa, upang magamit ang mga pagpapaandar ng printf / scanf na kailangan namin upang isama ang stdio.h sa aming programa, na nagbibigay ng pag-andar patungkol sa karaniwang input / output.
Ang sumusunod ay ang listahan ng mga file ng header.
isa | stdio.h | Karaniwang file ng header ng input / output |
2 | pagmimina.h | Pag-input / output ng header file |
3 | string.h | Mga kaugnay na string na nauugnay sa library tulad ng nakakakuha ng (), naglalagay (), atbp. |
4 | stdlib.h | Mga pangkalahatang pag-andar ng library tulad ng malloc (), calloc (), exit (), atbp. |
5 | matematika.h | Ang mga pagpapaandar na nauugnay sa pagpapatakbo ng matematika tulad ng sqrt (), pow (), atbp. |
6 | oras.h | Mga pagpapaandar na nauugnay sa oras |
7 | ctype.h | Mga pagpapaandar sa paghawak ng character |
8 | stdarg.h | Mga variable na function ng argument |
9 | signal.h | Mga pagpapaandar sa paghawak ng signal |
10 | setjmp.h | Mga pagpapaandar na tumalon |
labing-isang | lokal na lugar.h | Mga pagpapaandar sa lokal |
12 | errno.h | Error sa paghawak ng mga pagpapaandar |
13 | igiit.h | Gumagana ang mga diagnostic |
Ngayon pagkatapos dumaan sa mga pag-andar sa itaas ng C na maunawaan mo ang bawat & bawat pananarinari ng pag-andar at kung paano ito ipatupad sa wikang C. Inaasahan kong ang blog na ito ay may kaalaman at naidagdag na halaga sa iyo.
Sa gayon ay natapos na kami sa artikulong ito sa 'Mga Pag-andar Sa C'. Kung nais mong matuto nang higit pa, tingnan ang , isang pinagkakatiwalaang kumpanya sa online na pag-aaral. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo upang sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.
May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na ito at babalikan ka namin sa lalong madaling panahon.