Негізгі айырмашылық – функция прототипі мен C тіліндегі функция анықтамасы
Функция – белгілі бір тапсырманы орындау үшін қолданылатын мәлімдемелер тобы. Си программалауда орындалу негізгі () нүктесінен басталады. Бұл функция. Барлық операторларды бір бағдарламада жазудың орнына, оны бірнеше функцияларға бөлуге болады. Әрбір функция әртүрлі функцияларды орындайды. Функция прототипі компиляторға функция атауы, қайтару түрлері және параметрлері туралы хабарлайды. Ол функция декларациясы ретінде де белгілі. Әрбір функцияның оны анықтау үшін белгілі бір атауы бар. Функция операторлары бұйра жақшалардың ішінде жазылған. Функциялар мәнді қайтара алады. Мәнді қайтармайтын кейбір функциялар бар. Деректер функцияға параметрлер тізімі арқылы жіберіледі. Функция анықтамасында функция орындайтын нақты функционалдылық бар. Си бағдарламалауда функцияның прототипі және функцияның анықтамасы бар. Функция прототипі мен функция анықтамасының негізгі айырмашылығы мынада: функция прототипі тек функцияның мәлімдемесін қамтиды, ал функция анықтамасы функцияның нақты орындалуын қамтиды. Функция анықтамасында жергілікті айнымалылар мен функцияның не істейтінін анықтайтын мәлімдемелер бар.
С тіліндегі функция прототипі дегеніміз не?
Функция прототипі функция декларациясын қамтамасыз етеді. Ол функцияның атын, қайтару түрлерін, параметрлерін көрсетеді. Қайтару түрлері функциядан қайтарылатын деректер түрі болып табылады. Функция бүтін санды қайтарғанда, қайтару түрі int болады. Функция қалқымалы мәнді қайтарғанда, қайтару түрі қалқымалы мән болып табылады. Егер функция ешбір мәнді қайтармаса, ол бос функция болып табылады. Оны анықтау үшін функция атауы пайдаланылады. C кілт сөздерін функция атаулары ретінде пайдалануға болмайды. Деректер функцияға параметрлер арқылы беріледі. Функция прототипінде функцияның нақты орындалуы жоқ. Функция прототипінде келесі синтаксис бар.
(параметрлер тізімі);
Егер екі санның максимумын есептеу функциясы болса, декларацияны int max (int num1, int num2) түрінде жазуға болады; Максималды мәнді num1 және num2 сандарында табу керек. Бұл бүтін сандар және олар функцияға беріледі. Қайтару түрі де int болып табылады. Сонымен, функция бүтін мәнді қайтарады. Функция прототипінде параметр атауларын жазудың қажеті жоқ. Бірақ деректер түрлерін жазу керек. Сондықтан 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 мәні;
егер(p>q) {
мән=p;
}
басқа {
мән=q;
}
қайтару мәні;
}
Жоғарыда айтылғанға сәйкес, екінші мәлімдеме функция прототипін көрсетеді. Оның іске асырылуы жоқ. Нақты іске асыру негізгі бағдарламадан кейін. Функция прототиптері бір бастапқы файлдағы функцияны анықтағанда және сол функцияны басқа файлда басқада шақырғанда пайдалырақ.
С тіліндегі функция анықтамасы дегеніміз не?
Функция анықтамасында функцияның нақты орындалуы бар. Онда функция не істеу керек екенін қамтиды. Бағдарлама функцияны шақырған кезде басқару элементі шақырылатын функцияға ауысады. Функция орындалғаннан кейін басқару элементі негізгі функцияға қайта оралады. Қажетті деректер функцияға параметрлер тізімі ретінде жіберіледі. Егер қайтарылатын мән болса, қайтару түрі көрсетіледі. Егер қайтарылатын мәндер болмаса, қайтару түрі жарамсыз болады. Үшбұрыштың ауданын есептеу үшін төмендегі функцияны қараңыз.
қосу
float calArea(int x, int y);
int main () {
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 тақырып файлдарында жарияланған. Олардың кейбіреулері printf (), scanf () және т.б. Бағдарламашы өз функцияларын да жаза алады. Си тілінде функциялармен байланысты екі термин бар. Олар прототипті және функцияны анықтау қызметін атқарады. Функция прототипі мен C тіліндегі функция анықтамасының айырмашылығы мынада: функция прототипі тек функцияның мәлімдемесін қамтиды, ал функция анықтамасы функцияның нақты орындалуын қамтиды.
Функция прототипінің PDF файлын және C тіліндегі функция анықтамасын жүктеп алыңыз
Сіз осы мақаланың PDF нұсқасын жүктеп алып, оны сілтеме жазбасына сәйкес офлайн мақсаттарда пайдалана аласыз. PDF нұсқасын мына жерден жүктеп алыңыз: C тіліндегі функция прототипі мен функция анықтамасының арасындағы айырмашылық