În limbajele de programare, o declarație ( declarație engleză ) include o indicație a unui identificator , tip , precum și alte aspecte ale elementelor limbajului, cum ar fi variabile și funcții . Declarația este utilizată pentru a notifica compilatorului că există un element; acest lucru este destul de important pentru multe limbaje (cum ar fi C , de exemplu ) care necesită declararea variabilelor înainte de a putea fi utilizate.
În familia de limbaje BCPL , din care C++ și Java sunt membri , puteți specifica și dimensiunea unei variabile atunci când declarați un tip scalar, o matrice sau o matrice. În această familie, declarațiile (notificarea existenței și proprietăților unui element) și definițiile (furnizează direct implementarea în sine ) pot fi specificate independent unele de altele. Declarațiile sunt, în general, specificate în fișierele antet , care sunt apoi incluse în alte fișiere care se referă la ele pentru a utiliza acele declarații, dar nu au acces la definiție. Dacă definiția tipului nu se potrivește cu declarația specificată anterior a acestui element, atunci compilatorul emite un mesaj de eroare în acest caz.
Pentru variabile, definițiile atribuie valori zonelor de memorie rezervate la momentul declarării. Pentru funcții, definițiile oferă o descriere a corpului funcției în sine. Deși o variabilă sau o funcție poate fi declarată de mai multe ori, de obicei este definită o singură dată. Cu toate acestea, limbajele dinamice precum Javascript sau Python permit redefinirea funcțiilor.
O declarație este adesea folosită pentru a accesa o funcție sau o variabilă definită într-un alt fișier sursă sau bibliotecă .
Următoarele sunt câteva exemple de utilizare a declarațiilor C fără definiție :
extern char example1 ; extern int exemplu2 ; void exemplu3 ( void );Și acum câteva exemple de definiții în limbajul C:
char exemplu1 ; int exemplu2 = 5 ; void exemplu3 ( void ) { int x = 7 ; }În diferite limbaje de programare, cerințele privind declararea anumitor obiecte de program pot varia foarte mult. În general, pot fi declarați următorii parametri:
În programare, uneori, o definiție se distinge de o declarație, în raport cu elemente precum:
Mai mult, declarația și definiția pot fi combinate sau specificate separat în locuri diferite din codul sursă (până la fișiere diferite ).
O declarație în codul sursă ar trebui, în general, să preceadă prima utilizare a unui anumit identificator într-un program. Declarația este o informație pentru traducător care nu generează prin ea însăși cod executabil (dar adesea are ca rezultat o alocare de memorie ).
Sintaxa majorității limbajelor de programare prevede o declarație într-o anumită locație din codul sursă. Aceasta este fie o secțiune specială a programului (modul, subrutină, pachet), fie începutul unui bloc specific (adică toate declarațiile trebuie să fie în textul programului înainte de prima instrucțiune a acestui bloc).
Anunțul ar putea fi:
Declarațiile implicite sunt folosite în limbaje de programare care permit utilizarea unui identificator fără a-l declara în mod explicit. În acest caz, traducătorul trebuie să aibă un mecanism pentru adăugarea de atribute la identificator pe baza anumitor metode:
Declarațiile implicite pot duce la erori, de exemplu, o greșeală de ortografie a unei litere într-un identificator va provoca o nouă variabilă, provocând astfel o eroare în acțiunea programului.
Declarație explicităDeclarațiile explicite pot fi complete sau parțiale . Declarațiile parțiale pot fi utilizate în următoarele cazuri:
O declarație de variabilă poate conține, pe lângă declarația în sine, și inițializarea variabilei , adică o indicație a valorii inițiale a variabilei.
C , C++Reclamele sunt indicate:
Declarațiile sunt specificate într-un program sau subprogramul acestuia în specificația blocului, situat între antet (programe, proceduri, funcții, modul (Turbo Pascal)) și cuvântul care denotă începutul grupului de instrucțiuni al acestui bloc ( begin).
Exemplu de program ; var global_var ; ... procedura Licz () ; var local_var ; ÎNCEPE sfârşitul ; {procedura} începe sfârşitul . {program} PL/1Declarația are forma unei instrucțiuni DECLARE(sau abreviată DCL) și poate fi specificată oriunde în bloc (în PL/1 un astfel de bloc este fie o procedură de la antet PROCEDUREla un cuvânt, ENDfie un bloc de instrucțiuni BEGIN ... END) și se referă la obiecte disponibile în acest bloc. Limbajul are o sintaxă a atributelor foarte extinsă și un mecanism extins pentru substituirea atributelor și declarații implicite.
Exemplu : PROC ; ... /* Folosește variabila X declarată mai jos */ X = 1 ; ... /* o declarație de bloc poate fi specificată folosind un identificator dar variabila declarată trebuie să fie disponibilă la începutul blocului */ DCL X FIXED DECIMAL ( 5 , 0 ) ; ... END Exemplu ;În C, C++, declarațiile de funcții (numite și prototipuri ) sunt de obicei plasate în fișierele antet care definesc module specifice.
/* Prototipul funcției trunchi */ int trunc ( dublu x ); PascalDeclarațiile de funcție se aplică atunci când funcția urmează să fie apelată , nu atunci când este definită.
Procedura { Pascal } Proc_1 ; înainte ; procedura Proc_2 ; begin … {''Apelarea unei proceduri care nu a fost încă definită'' ''necesită declarație''} Proc_1 ; ... sfârşitul ; … { Definirea procedurii ulterioare } procedure Proc_1 ; începe ... sfârşit ; Turbo PascalDeclarația care precede funcția în sine este utilizată în același mod ca în Pascal. În Turbo Pascal, declarațiile sunt specificate și în module (extensia Pascal proprie a lui Turbo Pascal) în fișierul interface.
{ Turbo Pascal } unitate Exemplu ; interfaţă { declararea unei funcţii disponibilă în alte module şi programe } function trunc ( x : real ) : întreg ; implementare { definiția funcției declarate mai sus deoarece parametrii și valoarea returnată au fost definiți în declarație, funcțiile din secțiunea de interfață nu trebuie să le repete } function trunc ; incepe ...