Дефиниција и декларација података и функција

Идентификатори података, типова, симболичких константи итд, који су дефинисани на почетку тела функције (главног програма или потпрограма), локални су за ту функцију. То значи да они могу да се користе само унутар те функције.

Поред локалних идентификатора могу да постоје и идентификатори доступни већем броју функција. Они се називају глобални идентификаторидефинишу се наредбама које се пишу изван дефиниција било које функције. Променљиве са глобалним идентификаторима називају се глобалне променљиве.

Досег глобалних идентификатора је од места одговарајуће декларативне наредбе до краја текста програма. То значи да се могу користити у свим функцијама које се налазе иза тог места, а такође глобалним променљивим може да се приступа и оне могу да се позивају и из различитих датотека програмског система.

Пошто су поједине датотеке засебне јединице превођења које се преводе независно у свакој датотеци, пре првог коришћења било ког глобалног податка или функције, мора да постоји бар декларација податка, односно функције.

Под декларацијом податка или функције у програмирању подразумева се одређивање идентификатора и описивање особина податка или функције, без додељивања меморијског простора за смештање податка или функције. У случају податка, то значи да треба само навести његов тип, а у случају функције само одредити тип вредности функције и број и типове параметара.

Под дефиницијом податка или функције подразумева се, поред декларације, и додела меморијског простора за смештање податка или функције. Приликом дефинисања податка може да се наведе и његова почетна вредност. При дефинисању функције мора да се наведе и тело функције чији ће се превод сместити у додељени меморијски простор.

Декларисање глобалних података постиже се наредбама за дефинисање података, уз додавање модификатора extern на почетку:

еxtern тип име_пром, *име_пок, име_низа[][дуж]…[дуж], …;

При декларисању глобалних података не смеју да се наводе почетне вредности (иницијализатори). За низове дужина по првој димензији не мора да се наведе.

За локалне податке унутар функција постоји само дефиниција.

Вишеструке декларације су дозвољене чак и унутар исте датотеке. Ако пре првог коришћења идентификатора глобалног податка не постоји ни декларација ни дефиниција, преводилац за језик C пријавиће грешку. То није случај за идентификаторе функција – за њих ће преводилац претпоставити да је тип вредности функције int и прихватиће произвољан број аргумената произвољних типова!

У тачно једној од датотека програмског система сме и мора да се налази дефиниција за сваки глобални податак и за сваку функцију, ради додељивања меморијског простора за њих. Непоштовање овог правила неће да се примети у току превођења садржаја појединих датотека. Недостатак или вишак дефиниције пријавиће тек програм за повезивање.

One thought on “Дефиниција и декларација података и функција

  1. Повратни пинг: Модуларно програмирање – Рачунари и програмирање

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се /  Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се /  Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се /  Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се /  Промени )

Повезивање са %s