Lahat ng Kailangan Mong Malaman Tungkol sa Mga Pag-andar sa C?



Ang artikulong ito ay magpapakilala sa iyo ng isang simple ngunit isang napaka-pangunahing at mahalagang konsepto na Function sa C at susundan ito sa isang pagpapakita.

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,

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

 Larawan- Mga pagpapaandar sa C- Edureka
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.

isastdio.hKaraniwang file ng header ng input / output
2pagmimina.hPag-input / output ng header file
3string.hMga kaugnay na string na nauugnay sa library tulad ng nakakakuha ng (), naglalagay (), atbp.
4stdlib.hMga pangkalahatang pag-andar ng library tulad ng malloc (), calloc (), exit (), atbp.
5matematika.hAng mga pagpapaandar na nauugnay sa pagpapatakbo ng matematika tulad ng sqrt (), pow (), atbp.
6oras.hMga pagpapaandar na nauugnay sa oras
7ctype.hMga pagpapaandar sa paghawak ng character
8stdarg.hMga variable na function ng argument
9signal.hMga pagpapaandar sa paghawak ng signal
10setjmp.hMga pagpapaandar na tumalon
labing-isanglokal na lugar.hMga pagpapaandar sa lokal
12errno.hError sa paghawak ng mga pagpapaandar
13igiit.hGumagana 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.