Peb puas tuaj yeem siv static thiab volatile ua ke hauv C?
Peb puas tuaj yeem siv static thiab volatile ua ke hauv C?

Video: Peb puas tuaj yeem siv static thiab volatile ua ke hauv C?

Video: Peb puas tuaj yeem siv static thiab volatile ua ke hauv C?
Video: Kev hlub tsis ncaj ncees.10/15/2017 2024, Kaum ib hlis
Anonim

Static variables khaws lawv cov nqi ntawm kev hu xov tooj. Volatile variables (uas tsis yog theopposite ntawm zoo li qub ) yog siv thaum muaj qhov sib txawv siv ob qho tib si hauv ISR (kev cuam tshuam kev pabcuam niaj hnub) thiab sab nraud. Volatile qhia tus neeg sau ntawv kom ib txwm thauj khoom avariable ntawm RAM es tsis yog caching nws hauv CPUregister.

Ib yam li ib tug yuav nug, peb puas tuaj yeem siv qhov zoo li qub thiab hloov pauv ua ke?

Txawm tias koj nkag a zoo li qub tus nqi dhau los ntawm ntau txoj xov, txhua txoj xov ua tau muaj nws lub zos cachedcopy! Kom zam qhov no koj ua tau tshaj tawm cov variable li static hluav taws xob thiab qhov no yuav yuam cov xov toread txhua zaus lub ntiaj teb tus nqi. Txawm li cas los xij, tsis hloov pauv tsis yog asubstitute rau kom zoo synchronisation!

Ib yam li ntawd, vim li cas peb thiaj li siv cov volatile hauv C? C yog volatile lo lus tseem ceeb yog qhov tsim nyog uas siv rau qhov sib txawv thaum nws tau tshaj tawm. Nws qhia cov compilert tias tus nqi ntawm qhov sib txawv tuaj yeem hloov tau txhua lub sijhawm - tsis muaj kev cuam tshuam los ntawm tus lej uas tus neeg sau pom nyob ze. Cov ntsiab lus ntawm qhov no yog qhov hnyav heev.

Xav txog qhov no, dab tsi yog static volatile txhais tau tias hauv C?

zoo li qub hais txog qhov kev hloov pauv. Yog hais tias qhov sib txawv yog thoob ntiaj teb, nws txhais tau hais tias qhov kev txwv yog txwv rau cov ntaub ntawv uas nws tau tshaj tawm hauv. Yog tias qhov sib txawv hauv zos rau afunction, ces nws txhais tau tias lub cim xeeb siv los tuav qhov sib txawv no yog nyob rau hauv daim ntawv thov kev faib cov cim xeeb.

Peb puas tuaj yeem siv const nrog volatile hauv C?

Yog lawm. Ib qho txawv ua tau tau tshaj tawm tias yog ob qho tib si tsis hloov pauv thiab tas li hauv C . Const modifier tsis tso cai hloov tus nqi ntawm qhov sib txawv ntawm qhov kev pab cuam. Tab sis, nws tsis txhais hais tias tus nqi ntawm const variable yuav tsum tsis txhob hloov los ntawm sab nraud code.

Pom zoo: