Հիմնական տարբերություն – ֆունկցիայի նախատիպ ընդդեմ ֆունկցիայի սահմանման C-ում
Ֆունկցիան հայտարարությունների խումբ է, որն օգտագործվում է որոշակի առաջադրանք կատարելու համար: C ծրագրավորման մեջ կատարումը սկսվում է հիմնականից (): Դա ֆունկցիա է։ Բոլոր հայտարարությունները նույն ծրագրում գրելու փոխարեն, այն կարելի է բաժանել բազմաթիվ գործառույթների: Յուրաքանչյուր գործառույթ կկատարի տարբեր գործառույթներ: Ֆունկցիայի նախատիպը կոմպիլյատորին պատմում է ֆունկցիայի անվան, վերադարձի տեսակների և պարամետրերի մասին։ Այն նաև հայտնի է որպես ֆունկցիայի հռչակագիր: Յուրաքանչյուր ֆունկցիա ունի որոշակի անուն՝ այն նույնացնելու համար: Գործառույթի հայտարարությունները գրված են զույգ գանգուր փակագծերի ներսում:Ֆունկցիաները կարող են արժեք վերադարձնել: Կան որոշ գործառույթներ, որոնք արժեք չեն վերադարձնում: Տվյալները փոխանցվում են ֆունկցիային՝ օգտագործելով պարամետրերի ցանկը: Ֆունկցիայի սահմանումն ունի գործառույթի կողմից իրականացվող իրական ֆունկցիոնալությունը: C ծրագրավորման մեջ կա ֆունկցիայի նախատիպ և ֆունկցիայի սահմանում։ Ֆունկցիայի նախատիպի և ֆունկցիայի սահմանման հիմնական տարբերությունն այն է, որ ֆունկցիայի նախատիպը պարունակում է միայն ֆունկցիայի հայտարարությունը, մինչդեռ ֆունկցիայի սահմանումը պարունակում է ֆունկցիայի իրական իրականացումը: Ֆունկցիայի սահմանումն ունի տեղական փոփոխականներ և հայտարարություններ, որոնք որոշում են, թե ինչ է անում ֆունկցիան:
Ի՞նչ է ֆունկցիայի նախատիպը C-ում:
Function Prototype-ն ապահովում է ֆունկցիայի հռչակագիրը: Այն սահմանում է ֆունկցիայի անվանումը, վերադարձի տեսակները, պարամետրերը: Վերադարձի տեսակները տվյալների տեսակն են, որը վերադարձվում է ֆունկցիայից: Երբ ֆունկցիան վերադարձնում է ամբողջ թիվ, ապա վերադարձի տեսակը int է: Երբ ֆունկցիան վերադարձնում է float արժեք, ապա վերադարձի տեսակը float է:Եթե ֆունկցիան որևէ արժեք չի վերադարձնում, ապա այն դատարկ ֆունկցիա է: Ֆունկցիայի անունը օգտագործվում է այն նույնացնելու համար: C հիմնաբառերը չեն կարող օգտագործվել որպես ֆունկցիաների անուններ: Տվյալները փոխանցվում են ֆունկցիային՝ օգտագործելով պարամետրերը: Ֆունկցիայի նախատիպը չի պարունակում ֆունկցիայի իրական իրականացումը։ Ֆունկցիայի նախատիպն ունի հետևյալ շարահյուսությունը.
(պարամետրերի ցանկ);
Եթե կա առավելագույնը երկու թվերի հաշվարկման ֆունկցիա, ապա հայտարարությունը կարող է գրվել որպես int max (int num1, int num2); Առավելագույն արժեքը պետք է գտնել num1-ում և num2-ում: Սրանք ամբողջ թվեր են և փոխանցվում են ֆունկցիային: Վերադարձի տեսակը սկզբում նույնպես միջ. Այսպիսով, ֆունկցիան վերադարձնում է ամբողջ արժեք: Անհրաժեշտ չէ ֆունկցիայի նախատիպում գրել պարամետրերի անունները: Բայց անհրաժեշտ է գրել տվյալների տեսակները։ Հետևաբար, int max (int, int); նույնպես վավեր ֆունկցիայի նախատիպ է: Եթե կան երկու ամբողջ թվեր որպես num1, num2, num3, իսկ նախատիպը գրվում է որպես int max(int num1, int num2, num3); դա անվավեր է։num1, num2-ն ունեն տվյալների տեսակները, բայց num3-ը չունի տվյալների տեսակ: Հետևաբար, այն անվավեր է։
Հղում ստորև ներկայացված ծրագրին:
ներառել
int CarMax(int x, int y);
int main(){
int p=10;
int q=20;
int պատասխան;
պատասխան=calMax(p, q);
printf («Առավելագույն արժեքը %d\n է», պատասխան);
վերադարձ 0;
}
int calMax(int p, int q){
int արժեք;
if(p>q) {
արժեք=p;
}
այլ {
արժեք=q;
}
վերադարձի արժեք;
}
Համաձայն վերոհիշյալի, երկրորդ հայտարարությունը ցույց է տալիս ֆունկցիայի նախատիպը։ Այն իրագործում չունի։ Փաստացի իրականացումը հիմնական ծրագրից հետո է։ Ֆունկցիայի նախատիպերը ավելի օգտակար են մի աղբյուր ֆայլում ֆունկցիա սահմանելիս և այդ ֆունկցիան կանչել մեկ այլ ֆայլում:
Ի՞նչ է ֆունկցիայի սահմանումը C-ում:
Ֆունկցիայի սահմանումն ունի ֆունկցիայի իրական իրականացումը: Այն պարունակում է այն, ինչ պետք է անի գործառույթը: Երբ ծրագիրը կանչում է ֆունկցիան, կառավարումը փոխանցվում է կանչված ֆունկցիային: Ֆունկցիան կատարելուց հետո կառավարումը վերադառնում է հիմնական գործառույթին: Պահանջվող տվյալները փոխանցվում են ֆունկցիային որպես պարամետրերի ցանկ: Եթե կա վերադարձվող արժեք, ապա նշվում է վերադարձի տեսակը։ Եթե վերադարձվող արժեքներ չկան, վերադարձի տեսակը անվավեր է: Եռանկյան մակերեսը հաշվարկելու համար դիմեք ստորև նշված ֆունկցիային:
ներառել
float calArea(int x, int y);
int հիմնական () {
int p=10;
int q=20;
բնակարանային տարածք;
տարածք=calArea(p, q);
printf («Առավելագույն արժեքը %f\n է», տարածք);
վերադարձ 0;
}
float calArea (int x, int y) {
լողացող արժեք;
արժեք=0,5xy;
վերադարձի արժեք;
}
Ըստ վերը նշված ծրագրի՝ երկրորդ հայտարարությունը ցույց է տալիս ֆունկցիայի նախատիպը։ Գործառույթի կատարածի փաստացի իրականացումը գրվում է հիմնական ծրագրից հետո: Դա ֆունկցիայի սահմանումն է։ p և q արժեքները փոխանցվում են calArea ֆունկցիային: Փոփոխական արժեքը calArea ֆունկցիայի տեղական փոփոխական է: Տարածքը հաշվարկվում և վերագրվում է փոփոխական արժեքին: Այնուհետև այն վերադարձվում է հիմնական ծրագիր:
Որո՞նք են նմանությունները ֆունկցիայի նախատիպի և ֆունկցիայի սահմանման միջև C-ում:
- Եվ ֆունկցիայի նախատիպը և գործառույթի սահմանումը կապված են գործառույթների հետ:
- Եվ ֆունկցիայի նախատիպը և գործառույթի սահմանումը պարունակում են ֆունկցիայի անվանում:
- Եվ ֆունկցիայի նախատիպը և գործառույթի սահմանումը պարունակում են վերադարձի տեսակներ:
- Եվ ֆունկցիայի նախատիպը և գործառույթի սահմանումը պարունակում են պարամետրեր:
Ո՞րն է տարբերությունը ֆունկցիայի նախատիպի և ֆունկցիայի սահմանման միջև C-ում:
Ֆունկցիայի նախատիպ ընդդեմ ֆունկցիայի սահմանման C-ում |
|
Ֆունկցիայի նախատիպը սահմանում է ֆունկցիայի անունը, վերադարձի տեսակը, պարամետրերը, սակայն բաց է թողնում ֆունկցիայի մարմինը: | Ֆունկցիայի սահմանումը սահմանում է ֆունկցիայի անվանումը, վերադարձի տեսակը; պարամետրերը ներառում են ֆունկցիայի մարմին: |
Իրականացում | |
Ֆունկցիայի նախատիպը չունի գործառույթի իրականացում: | Ֆունկցիայի սահմանումն ունի ֆունկցիայի իրականացում: |
Ամփոփում – Ֆունկցիայի նախատիպ ընդդեմ ֆունկցիայի սահմանումը C-ում
Ծրագրերում գործառույթների օգտագործումն առավելություններ ունի. Գործառույթները մեծացնում են կոդի կրկնակի օգտագործման հնարավորությունը: Պետք չէ նորից ու նորից գրել նույն կոդը։ Փոխարենը ծրագրավորողը կարող է բաժանել ծրագիրը և կանչել անհրաժեշտ ֆունկցիան։ C-ում կան գրադարանային ֆունկցիաներ։ Այս գործառույթները հայտարարված են C վերնագրի ֆայլերում: Դրանցից մի քանիսն են printf (), scanf () և այլն: Ծրագրավորողը կարող է նաև գրել իր սեփական գործառույթները: Գոյություն ունեն երկու տերմին, որոնք կապված են C-ում ֆունկցիաների հետ: Դրանք գործում են նախատիպ և ֆունկցիայի սահմանում: Ֆունկցիայի նախատիպի և ֆունկցիայի սահմանման միջև տարբերությունը C-ում այն է, որ ֆունկցիայի նախատիպը պարունակում է միայն ֆունկցիայի հայտարարությունը, մինչդեռ ֆունկցիայի սահմանումը պարունակում է ֆունկցիայի իրական իրականացումը:
Ներբեռնեք «Function Prototype vs Function Definition»-ի PDF-ը C-ում
Դուք կարող եք ներբեռնել այս հոդվածի PDF տարբերակը և օգտագործել այն անցանց նպատակներով՝ ըստ մեջբերումների: Խնդրում ենք ներբեռնել PDF տարբերակը այստեղ՝ Ֆունկցիայի նախատիպի և ֆունկցիայի սահմանման տարբերությունը C-ում