Maaari ba tayong gumamit ng static at volatile nang magkasama sa C?
Maaari ba tayong gumamit ng static at volatile nang magkasama sa C?

Video: Maaari ba tayong gumamit ng static at volatile nang magkasama sa C?

Video: Maaari ba tayong gumamit ng static at volatile nang magkasama sa C?
Video: HOW TO SET UP L4D2 2024, Abril
Anonim

Static pinapanatili ng mga variable ang kanilang halaga sa pagitan ng mga tawag sa function. pabagu-bago ng isip mga variable (na hindi kabaligtaran ng static ) ay ginamit kapag ang isang variable ay ginamit kapwa sa loob ng isang ISR (interrupt service routine) at sa labas nito. pabagu-bago ng isip nagsasabi sa compiler na palaging mag-load ng avariable mula sa RAM sa halip na i-cache ito sa isang CPUregister.

Katulad nito, maaaring itanong ng isa, maaari ba tayong gumamit ng static at pabagu-bago ng isip nang magkasama?

Kahit na ikaw access a static halaga sa pamamagitan ng maraming mga thread, bawat thread pwede magkaroon ng lokal na cachedcopy nito! Para maiwasan ito kaya mo ideklara ang variable bilang static na pabagu-bago ng isip at ito kalooban pilitin ang thread na basahin sa bawat oras na ang pandaigdigang halaga. gayunpaman, pabagu-bago ng isip ay hindi kapalit ng wastong pag-synchronize!

Katulad nito, bakit tayo gumagamit ng pabagu-bago ng isip sa C? Pabagu-bago ng isip ni C Ang keyword ay isang qualifier na inilapat sa isang variable kapag ito ay idineklara. Sinasabi nito sa compiler na ang halaga ng variable ay maaaring magbago anumang oras--nang walang anumang aksyon na ginagawa ng code na makikita ng compiler sa malapit. Ang mga implikasyon nito ay medyo seryoso.

Isinasaalang-alang ito, ano ang ibig sabihin ng static na pabagu-bago ng isip sa C?

static tumutukoy sa saklaw ng variable. Kung ang variable ay pandaigdigan, nangangahulugan ito na ang saklaw ay limitado sa source file kung saan ito idineklara. Kung ang variable ay lokal upang gumana, nangangahulugan ito na ang memorya na ginamit upang hawakan ang variable na ito ay nasa statically allocated memory ng application.

Maaari ba nating gamitin ang const na may volatile sa C?

Oo. Isang variable pwede ideklara bilang pareho pabagu-bago ng isip at pare-pareho sa C . Const hindi pinapayagan ng modifier na baguhin ang halaga ng variable sa pamamagitan ng panloob na programa. Ngunit, hindi ito nangangahulugan na ang halaga ng const variable ay hindi dapat baguhin ng panlabas na code.

Inirerekumendang: