Expresii constante

Expresii constante

În unele cazuri, C ++ cere ca valoarea calculată a expresiei să fie o constantă întregă. Aceasta se referă la limitele matricelor, dimensiunea câmpurilor de biți, valorile inițializatorilor elementelor de enumerare. Expresiile permanente sunt valori întregi imuabile. Ele sunt construite pe baza literalului, a elementelor de enumerare (se află în fața acestuia), a constantelor integer inițializate, a expresiilor construite pe dimensiunea operației.







Expresia constantă nu-și schimbă valoarea. Prin urmare, o expresie constantă nu poate fi un nume de variabilă sau o expresie care să includă numele variabilei.

Expresiile permanente sunt evaluate la etapa de translație și, prin urmare, funcțiile, obiectele de clasă, indicatorii, referințele, operațiunea cu virgulă și operația de asignare nu pot fi folosite în expresia constantă.

O expresie constantă poate consta din literali, nume constante, elemente de enumerare (despre ele mai târziu), pot conține simboluri ale operațiilor aritmetice care leagă expresii constante.







Scopul principal al expresiei constante în C ++ - stabilirea unui set limitat de valori al valorilor destinate execuției programului de gestionare a procesului de organizare, de locuri de muncă obiecte caracteristici predefinite (de exemplu, dimensiunea de matrice). Controlul execuției și caracteristica de dimensiune nu necesită precizie specială. Controalele trebuie să fie cât mai simple posibil, numărul elementelor și lungimea în octeți sunt specificate prin valori întregi. Nu există probleme asociate cu exactitatea calculului, există suficiente valori integrale.

Valoarea expresiei constante este determinată deja la etapa de translație, deoarece dimensiunea matricei și eticheta operatorului etichetată în instrucțiunea de selecție trebuie să fie cunoscute înainte de începerea programului. Și acesta este un alt argument în favoarea interzicerii includerii în expresia constantă a apelurilor pentru funcții (în stadiul traducerii nu există valori de întoarcere).

O expresie constantă nu poate conține o operație de atribuire, o operație de incrementare și o operațiune de decrementare.

Dar operațiile de comparare, operații aritmetice, funcționare sizeof și, destul de ciudat, operația de virgulă traducător sancționabile (traducător și considerat capabil, să o compare și definește dimensiunea și înțelege valoarea ar trebui să fie atribuită o expresie care conține simbolul virgulă funcționare ).







Articole similare

Trimiteți-le prietenilor: