Vai mēs varam izmantot statisko un gaistošu kopā C valodā?
Vai mēs varam izmantot statisko un gaistošu kopā C valodā?

Video: Vai mēs varam izmantot statisko un gaistošu kopā C valodā?

Video: Vai mēs varam izmantot statisko un gaistošu kopā C valodā?
Video: The Embedded Way - The volatile keyword in C 2024, Novembris
Anonim

Statisks mainīgie saglabā savu vērtību starp funkciju izsaukumiem. Nepastāvīgs mainīgie (kas nav pretējs statisks ) ir lietots kad mainīgais ir lietots gan ISR (pārtraukšanas pakalpojuma rutīnas) ietvaros, gan ārpus tās. Nepastāvīgs liek kompilatoram vienmēr ielādēt mainīgo no RAM, nevis saglabāt to kešatmiņā CPU reģistrā.

Līdzīgi var jautāt, vai mēs varam kopā izmantot statisko un nepastāvīgo?

Pat ja tu piekļūt a statisks vērtība caur vairākiem pavedieniem, katrs pavediens var ir tā vietējā kešatmiņā saglabātā kopija! Lai no tā izvairītos tu vari deklarēt mainīgo kā statiski gaistoši un šī gribu piespiediet pavedienu katru reizi, kad globālā vērtība. tomēr nepastāvīgs neaizstāj pareizu sinhronizāciju!

Līdzīgi, kāpēc mēs izmantojam gaistošus C valodā? C ir nepastāvīgs atslēgvārds ir kvalifikators, kas tiek lietots mainīgajam, kad tas tiek deklarēts. Tas norāda kompilatoram, ka mainīgā vērtība var mainīties jebkurā laikā - bez jebkādas darbības, ko veic kompilatora tuvumā atrastais kods. Tā sekas ir diezgan nopietnas.

Ņemot to vērā, ko C nozīmē statiskais gaistošais?

statisks attiecas uz mainīgā darbības jomu. Ja mainīgais ir globāls, tas nozīmē, ka darbības joma ir ierobežota līdz avota failam, kurā tas tika deklarēts. Ja mainīgais ir lokāls afunkcijai, tas nozīmē, ka šī mainīgā glabāšanai izmantotā atmiņa ir lietojumprogrammas statiski piešķirtajā atmiņā.

Vai mēs varam izmantot const ar volatile C?

Jā. Mainīgais var tiek deklarēti kā abi nepastāvīgs un nemainīgs iekšā C . Konst modifikators neļauj mainīt mainīgā vērtību iekšējā programmā. Bet tas nenozīmē, ka vērtība konst mainīgo nedrīkst mainīt ārējais kods.

Ieteicams: