Функцияни эълон қилиш ва аниқлаш.
Дастурда функцияни қўллаш учун, олдин уни эълон қилиш, кейин эса аниқлаш лозим. Функцияни эълон қилишда компиляторга унинг номи, қайтарадиган қийматлари ва параметрлари ҳақида хабар берилади. Функцияни аниқланишидан компилятор унинг қандай ишлаши ҳақида маълумот олади. Дастурдаги бирор функцияни олдиндан эълон қилмасдан туриб чақириш мумкин эмас. Функцияни эълон қилиниши унинг прототипини (тимсолини) ҳосил қилиш деб аталади.
Функцияни эълон қилиш.
Функцияни эълон қилишнинг уч хил усули мавжуд:
Функция прототипи файлга ёзилади, кейин эса у #include ифодаси қўлланилиб керакли дастурга қўшиб қўйилади.
Функция ишлатиладиган файлга унинг прототиплари ёзилади.
Функция уни чақирувчи ихтиёрий функциядан олдин ёзилади ва бу ҳолда функция эълон қилиниши билан бир вақтда аниқланади.
Функцияни прототипини тузмасдан туриб ҳам уни ишлатишдан олдин эълон килиш мумкин. Лекин, дастурлашнинг бундай услуби қуйидаги учта сабабга кўра яхши ҳисобланмайди.
Биринчидан, функцияни файлда кўрсатилган тартибда ёзиш, уни дастур ишлатилишида ўзгартириш жараёнини мураккаблаштиради.
Иккинчидан, қуйидаги кўп учрайдиган ҳолатни амалга ошириш имконияти мавжуд эмас.
А() функция В() функцияни чақирсин. Худди шунингдек, дастурнинг бирор бир қисмида В() функция А() функцияни чақирсин. У ҳолда биз А() функцияни В() функция аниқланмасдан туриб ишлата олмаймиз.
Бу ҳолда ҳеч бўлмаганда битта функция олдиндан эълон қилиниши лозим.
Учинчидан, функциянинг прототиплари дастурни текшириш жараёнида жуда яхши ишлатилади. Агарда функция прототипи аниқланган бўлса унга мувофиқ функция аниқланган параметрини қабул қилади ёки аниқланган бирор бир қиймат қайтаради. Дастурда эълон қилинган прототипга мувофиқ бўлмаган функцияни ишлатишга уринсак компилятор бу хатоликни компиляция жараёнини ўзидаёқ аниқлайди ва дастур ишлашида турли нохуш хатоликларни рўй беришининг олдини олади.
Do'stlaringiz bilan baham: |