Variabilele din B de anunțuri de inițializare, tipuri, performanța și domeniul de aplicare

O serie de alte cuvinte care sunt specifice pentru această versiune a compilatorului, de exemplu, de departe. în apropiere. minuscul. imens. asm. asm_ etc.

De exemplu, ID-urile corecte






o, _, _1_, Sarkasm, a_long_variable, aLongVariable, var19, defaultX, char_type
fals
1a, valoarea $, un lung-valoare, scurt

C - caz sensibile la limba. Variabilele numit și A, sau și sfârșitul END, sau perfectDark și PerfectDarK - este variabile diferite.

tipuri de variabile

variabilă T ype determină
  • 1) Mărimea variabilă în octeți (numărul de octeți de memorie pentru a aloca pentru stocarea valorilor de calculator)
  • 2) Introducerea variabilei în memorie (ca biți într-o zonă de memorie dedicată va fi amplasat în formă binară).
BBC sunt mai multe tipuri de bază. Noi le împărțiți în două grupuri - numere întregi și în virgulă mobilă.
  • char - marimea de 1 octet. Întotdeauna! Este necesar să ne amintim.
  • scurt - 2 octeți
  • int - 4 octeți
  • lung - 4 octeți
  • lung, lung - dimensiunea de 8 octeți.
Ar trebui să facă un punct. Mărimea variabilelor din B nu este definit în mod clar, deoarece dimensiunea în octeți. Standardul specifică doar că

mangal <= short <= int <= long <= long long

Acum, să definească numărul minim și maxim care poate stoca o variabilă pentru fiecare tip. Numerele pot fi pozitive sau negative. Numerele negative sunt utilizate pentru stocarea de un semn de biți. Uneori semna are nevoie (de exemplu, magazin, un cont bancar, temperatura, coordonate, etc.), și, uneori, nu este nevoie (greutate, dimensiunea de matrice, vârsta persoanei, etc.). Pentru a face acest lucru, utilizați modificator B a semnat și nesemnate. nesemnat char - toate cele 8 biți de un număr, în total, avem un set de numere 00000000-11,111,111 în formă binară, adică, 0-255 char semnat de la -128 la 128. Variabilele implicite sì semnate. De aceea, înregistrează char și semnate char echivalente.

Tab. 1 Dimensiunea de tipuri întregi în B.

BBC este operatorul, care vă permite să obțineți dimensiunea variabilei în octeți. sizeof variabilă sau sizeof (variabilă) sau sizeof (tip). Acesta este operatorul, pentru că funcția nu este capabil de a obține informații cu privire la dimensiunea tipurilor în timpul rulării. Scrie un mic program pentru a vă asigura că o dimensiune variabilă.

(Cred că este clar că variabilele pot avea orice nume valid). Acest program ar putea scrie și mai ușor

BBC este de același tip poate avea mai multe nume
=== scurt scurt int
=== lung int lung
lung, lung === int lung lung
unsigned int === nesemnate

Virgula mobila Tipuri

Tab. 2 tipuri Dimensiune punct si plutitoare.

Numărul de cifre semnificative ale mantisa

1.175494351 E - 38

3.402823466 E + 38

1.7976931348623158 E + 308

variabile de preaplin

BBC nu este în urma revărsarea variabilelor. Acest lucru înseamnă că importanța în creștere constantă, să zicem, un int în cele din urmă am „resetare valoare“

În general, comportamentul variabilei de preaplin este definită numai pentru tipurile nesemnate. Valoarea de resetare nesemnat. Pentru celelalte tipuri se poate întâmpla oriunde, iar dacă aveți nevoie de sledat de preaplin, face manual, verificând argumentele sau de a folosi alte metode, în funcție de arhitectura compilator și procesor.







Postfix denumire tip

munca găină W cu numere folosind numărul de caractere la sfârșitul indică în mod explicit tipul său, de exemplu
  • 11 - numărul de tipul int
  • 10U - nesemnat
  • 22L sau 22L - lung
  • 3890ll sau 3890LL - lungi lungi (și lL sau Ll)
  • 80.0f sau 80.f sau 80.0F - float (prezența obligatorie a unui punct zecimal în intrare)
  • 3.0 - numărul de tip dublu
O notație exponențială este, de asemenea, implicit denotă numărul de tip dublu.

Codul următor, cu toate acestea, nu va duce la erori, deoarece există o conversie de tip implicită

Hexazecimal și octal

La momentul de a lucra cu numere, puteți utiliza Hex și formatul octal. Numerele din hexa începe cu 0x, sistem octal de la zero. Prin urmare, în cazul în care numărul începe cu un zero, atunci nu ar trebui să fie mai mult de 7 cifre:

Forma exponențială de reprezentare a numerelor

E ksponentsialnoy numit prezentarea unei reprezentări a e numărul de M ± p. unde M - numerele Mantis, p - puterea de zece. În acest caz, Mantis trebuie să fie un non-zero, înainte de semnul zecimal.
De exemplu 1.25 === 1.25e0, 123,5 === 1.235e2, 0.0002341 ===-2.341e 4, etc.
Reprezentările 3.2435e7 3.2435e echivalent + 7
Suschestveut și alte reprezentări ( „inginerie“), în care gradul trebuie să fie divizibil cu trei. De exemplu 1.25 === 1.25e0, 123,5 === 123.5e0, 0.0002341 ===-234.1e 6, 0.25873256 ===-258.73256e 3 etc.

Variabilele sunt declarate în B sunt întotdeauna la începutul blocului (blocul - porțiunea de cod delimitat de acolade)

Puteți declara mai multe variabile de același tip, numele de punctul de divizare

Există declarate variabile a și b din interiorul funcția principală. și z variabilă în interiorul corpului buclei. Codul de mai jos va provoca o eroare de compilare

Valoarea inițială a variabilei

Dacă executați programul pe VC, atunci runtime va decola de avertisment
Run-Time Nereușită # 3 - variabila „i“ este utilizat fără a fi inițializat.
Dacă faceți clic pe „Continue“, atunci programul va imprima „gunoi.“ În multe alte compilatoare în cazul în care programul nu va observa.

domeniul variabilei

P am linie locală AC (declarată în orice funcție) și la nivel mondial. O variabilă globală este vizibil pentru toate funcțiile declarate în acest fișier. O variabilă locală este limitată la domeniul său de aplicare. Când spun că variabila „vizibil într-un anumit loc“, ceea ce înseamnă că în acest moment este definit, și poate fi utilizat. De exemplu, ia în considerare un program în care există o variabilă globală

Acesta va fi afișat
foo: 100
bar: 333
Aici, variabila globală la nivel mondial este vizibil pentru toate funcțiile. Dar argumentul funcției rescria variabila globală, astfel încât valoarea locală a 333 este afișat atunci când treci un argument 333.
Iată un alt exemplu

555. Programul va, de asemenea, la fel ca în cazul precedent, variabila locală „mai important.“ O variabilă nu declarată vizibilă în afara acesteia, cum ar fi un domeniu de aplicare

Acest exemplu nu va compila, deoarece variabila y există numai în unitatea sa.
Aici este un exemplu în cazul în care variabilele declarate în cadrul blocului se suprapun

programul va
30
20
10
Variabilele globale ar trebui evitate. Foarte des poți auzi asta. Să încercăm să înțelegem de ce. În proiectul simplu variabile globale arata destul de normal. Dar imaginați-vă că aveți o aplicație care

  • 1) a dezvoltat un număr de oameni și este compus din sute de mii de linii de cod
  • 2) Acesta funcționează în mai multe fluxuri

În primul rând, variabila globală, în cazul în care este vizibil pentru toată lumea este supusă de a schimba orice parte a programului. Ați schimbat variabila globală pe care doriți să-l înregistreze, iar cealaltă parte a programului a suprascris deja un sens diferit (de fapt, este o întreagă clasă de probleme care apar într-un mediu multithreaded). În al doilea rând, pentru dimensiunea mare a proiectului nu ține evidența celor care și atunci când variabilele globale nasozdavali. Exemplele de mai sus arată modul în care variabilele se pot suprapune reciproc, și același lucru se întâmplă într-un proiect mare.

Desigur, există situații în care variabilele globale simplifică programul, dar astfel de situații nu se întâmplă de multe ori, și nu în temele, astfel încât să nu creeze variabile globale!
Variabilele pot fi nu numai întreg și punctul de flotant. Există multe alte tipuri, pe care le vom explora mai târziu.

ru-Cyrl 18- tutorial Sypachev S.S. 1989-04-14 [email protected] studenți Stepan Sypachev

Încă nu este clar? - întrebări scrie pe cutie