Kunnen we statisch en vluchtig samen gebruiken in C?
Kunnen we statisch en vluchtig samen gebruiken in C?

Video: Kunnen we statisch en vluchtig samen gebruiken in C?

Video: Kunnen we statisch en vluchtig samen gebruiken in C?
Video: Webinar medische ontwikkelingen en onderzoek C-support (9 maart 2023) 2024, November
Anonim

Statisch variabelen behouden hun waarde tussen functieaanroepen. Vluchtig variabelen (wat niet het tegenovergestelde is van) statisch ) zijn gebruikt wanneer een variabele is gebruikt zowel binnen een ISR (interrupt service routine) als daarbuiten. Vluchtig vertelt de compiler om altijd een variabele uit RAM te laden in plaats van deze in een CPU-register te cachen.

Evenzo kan men zich afvragen, kunnen we statisch en vluchtig samen gebruiken?

Zelfs als jij toegang tot een statisch waarde door meerdere threads, elke thread kan hebben zijn lokale cachedcopy! Om dit te voorkomen jij kan declareer de variabele als statisch vluchtig en dit zullen forceer de thread om elke keer de globale waarde te lezen. Echter, vluchtig is geen vervanging voor een goede synchronisatie!

Evenzo, waarom gebruiken we vluchtig in C? C is vluchtig trefwoord is een kwalificatie die wordt toegepast op een variabele wanneer deze wordt gedeclareerd. Het vertelt de compiler dat de waarde van de variabele op elk moment kan veranderen - zonder dat er actie wordt ondernomen door de code die de compiler in de buurt vindt. De implicaties hiervan zijn vrij ernstig.

Wat betekent statisch vluchtig in C?

statisch verwijst naar het bereik van de variabele. Als de variabele globaal is, betekent dit dat het bereik beperkt is tot het bronbestand waarin het is gedeclareerd. Als de variabele lokaal is voor een functie, betekent dit dat het geheugen dat wordt gebruikt om deze variabele te bewaren zich in het statisch toegewezen geheugen van de toepassing bevindt.

Kunnen we const gebruiken met vluchtig in C?

Ja. Een variabele kan worden verklaard als beide vluchtig en constante in C . Const modifier staat niet toe dat de waarde van de variabele door een intern programma wordt gewijzigd. Maar het betekent niet dat de waarde van const variabele mag niet worden gewijzigd door externe code.

Aanbevolen: