Дефиниција је аутоматски декларација у већини сценарија. Сада ћемо разумети разлику између дефиниције и декларације са детаљном табелом поређења.
Цомпарисон Цхарт
Основа за поређење | Дефиниција | Декларација |
---|---|---|
Басиц | Одређује вредност ускладиштену у променљивој, функцији или класи. | Одређује име и тип променљиве, функције, класе итд. |
Додела меморије | Јавља | Не дешава се. |
Понављање | Изјаве се не могу поново дефинисати ако су већ дефинисане. | Декларација може бити лако могућа. |
Обим | Трајање се одређује | Видљивост је специфицирана |
Дефиниција дефиниције
Дефиниција идентификује код или податке повезане са именом променљиве, функције, класе, итд. Дефиниција је нужно потребна компајлеру да додијели простор за похрану декларираног ентитета. Када је променљива дефинисана, она има количину меморије која се састоји од неколико бајтова за ту променљиву. Дефиниција функције производи код за функцију. Програмски елемент можемо дефинисати само једном у програму, јер је дефиниција јединствена спецификација елемента програма. Однос између декларације и дефиниције може бити један-на-много .
У неким ситуацијама, програмски елемент се не може дефинисати, али декларисати, на пример када се функција никада не позива или се њена адреса никада не користи чак и ако је декларисана. Други пример је онај у коме се дефиниција класе не користи док се она мора декларисати.
Дефиниција декларације
Декларација се користи за спецификацију имена за програм као што су име променљиве, функције, простор имена, класе итд. У програму се не може користити име без његове декларације. Елементи програма се могу декларисати више пута, за разлику од дефиниције. Вишеструке декларације могу се постићи само када се различите декларације израђују у истом формату. Декларација је медиј којим се осигурава видљивост елемента програма у перспективи преводилаца.
Декларација служи сврси дефиниције, само у одређеним случајевима се не подразумева услов који је дат у наставку.
- Када је члан статичких података декларисан унутар декларације класе, у том случају то није декларација. Зато што генерише само једну копију за све објекте класе, а статички подаци су компоненте објеката предвиђеног типа класе.
- Ако је декларација типедеф изјава.
- Варијабла је декларисана без иницијализатора или тијела функције, али укључује вањске спецификаторе. То указује да дефиниција може бити за другу функцију и даје име спољне везе.
- Декларација имена класе без дефиниције као што је класа Т;
Обично се декларација одвија у обиму . Опсег одлучује о видљивости декларисаног имена и дефинисаног трајања објекта.
Кључне разлике између дефиниције и декларације
- Дефиниција елемента програма одређује вредност придружену том елементу. С друге стране, декларација програмског елемента специфицира њено име и тип компајлеру.
- Дефиниција програмског елемента задржава одређену количину меморије док декларација не укључује доделу меморије.
- Елемент програма се може декларисати више пута. Насупрот томе, дефиниција укључује јединствену спецификацију са именом програмског елемента који се може разликовати било којим кодом или подацима.
- Опсег у декларацији описује видљивост варијабле, функције, објекта, класе, пописивања, итд. Насупрот томе, у дефиницији се опсег односи на трајање.
Дефинитион Екампле
- Дефиниција променљиве као и декларација:
int r = 10;
- Дефиниција функције:
инт адд (инт к, инт и) {инт а; а = к + и; ретурн а; }
Пример декларације
- Декларација варијабле:
extern int r;
- Декларација функције:
int add (int p1, int p2);
Закључак
Процес декларисања се користи да направи елемент програма видљив компајлеру, и не захтева додељивање меморије. Инверзна дефиниција је декларација која резервише складиште, једноставним речима компајлер задржава меморијски простор за декларисани ентитет.