A mund të përdorim statik dhe të paqëndrueshëm së bashku në C?
A mund të përdorim statik dhe të paqëndrueshëm së bashku në C?

Video: A mund të përdorim statik dhe të paqëndrueshëm së bashku në C?

Video: A mund të përdorim statik dhe të paqëndrueshëm së bashku në C?
Video: Ja si te zhdukni dhjamin e barkut dhe barkun e varur vetem duke pire kete pije cdo mengjes 2024, Dhjetor
Anonim

Statike variablat ruajnë vlerën e tyre ndërmjet thirrjeve të funksioneve. I paqëndrueshëm variablat (që nuk është e kundërta e statike ) janë të përdorura kur një ndryshore është të përdorura si brenda një ISR (rutinë shërbimi të ndërprerë) dhe jashtë tij. I paqëndrueshëm i thotë kompajlerit që të ngarkojë gjithmonë të disponueshme nga RAM-i në vend që ta ruajë atë në një regjistër CPU.

Në mënyrë të ngjashme, dikush mund të pyesë, a mund të përdorim statike dhe të paqëndrueshme së bashku?

Edhe nëse ju akses a statike vlerësoni përmes fijeve të shumta, çdo thread mund keni kopjen e saj të memories lokale! Për të shmangur këtë ti mundesh deklaroni variablin si të paqëndrueshme statike dhe kjo do detyroni fillin të toradojë çdo herë vlerën globale. Megjithatë, i paqëndrueshëm nuk është zëvendësues për sinkronizimin e duhur!

Në mënyrë të ngjashme, pse përdorim volatile në C? C-ja është e paqëndrueshme Fjala kyçe është një kualifikues që zbatohet në një variabël kur deklarohet. Ai i tregon përpiluesit që vlera e ndryshores mund të ndryshojë në çdo kohë - pa u ndërmarrë asnjë veprim nga kodi që përpiluesi gjen aty pranë. Pasojat e kësaj janë mjaft serioze.

Duke marrë parasysh këtë, çfarë do të thotë paqëndrueshmëria statike në C?

statike i referohet shtrirjes së ndryshores. Nëse ndryshorja është globale, kjo do të thotë që shtrirja është e kufizuar në skedarin burimor ku është deklaruar. Nëse ndryshorja është lokale për funksionin, atëherë do të thotë se memoria e përdorur për të mbajtur këtë ndryshore është në memorien e alokuar statikisht të aplikacionit.

A mund të përdorim konst me volatile në C?

Po. Një variabël mund të deklarohen si të dyja i paqëndrueshëm dhe konstante në C . Konst modifikuesi nuk lejon ndryshimin e vlerës së ndryshores nga programi i brendshëm. Por, kjo nuk do të thotë se vlera e konst ndryshorja nuk duhet të ndryshohet nga kodi i jashtëm.

Recommended: