Կարո՞ղ ենք C-ում օգտագործել ստատիկ և ցնդող միասին:
Կարո՞ղ ենք C-ում օգտագործել ստատիկ և ցնդող միասին:

Video: Կարո՞ղ ենք C-ում օգտագործել ստատիկ և ցնդող միասին:

Video: Կարո՞ղ ենք C-ում օգտագործել ստատիկ և ցնդող միասին:
Video: Мегамоль и канализация ► 7 Прохождение Silent Hill (PS ONE) 2024, Ապրիլ
Anonim

Ստատիկ փոփոխականները պահպանում են իրենց արժեքը ֆունկցիաների կանչերի միջև: Ցնդող փոփոխականներ (որը հակառակը չէ ստատիկ ) են օգտագործված երբ փոփոխական է օգտագործված ինչպես ISR-ի շրջանակներում (ընդհատումների սպասարկման ռեժիմ), այնպես էլ դրանից դուրս: Ցնդող հրահանգում է կոմպիլյատորին միշտ բեռնել հասանելի RAM-ից, այլ ոչ թե քեշավորել այն CPUregister-ում:

Նմանապես կարելի է հարցնել՝ կարո՞ղ ենք միասին օգտագործել ստատիկ և անկայուն:

Եթե նույնիսկ դու մուտք ա ստատիկ արժեքը մի քանի թելերի միջոցով, յուրաքանչյուր թեմա կարող է ունեն իր տեղական քեշապատճենը: Սրանից խուսափելու համար դու կարող ես փոփոխականը հայտարարիր որպես ստատիկ ցնդող եւ այս կամք ստիպել շարանը toread ամեն անգամ, երբ համաշխարհային արժեքը. Այնուամենայնիվ, ցնդող չի փոխարինում պատշաճ համաժամացմանը:

Նմանապես, ինչու ենք մենք օգտագործում ցնդող C-ում: C-ի ցնդող հիմնաբառը որակիչ է, որը կիրառվում է փոփոխականի վրա, երբ այն հայտարարվում է: Այն կոմպիլյատորին ասում է, որ փոփոխականի արժեքը կարող է փոխվել ցանկացած պահի, առանց որևէ գործողություն ձեռնարկելու այն կոդի կողմից, որը կոմպիլյատորը գտնում է մոտակայքում: Սրա հետևանքները բավականին լուրջ են:

Հաշվի առնելով սա, ի՞նչ է նշանակում ստատիկ ցնդող C-ում:

ստատիկ վերաբերում է փոփոխականի շրջանակին: Եթե փոփոխականը գլոբալ է, դա նշանակում է, որ շրջանակը սահմանափակված է աղբյուրի ֆայլով, որում հայտարարվել է: Եթե փոփոխականը տեղական է ֆունկցիայի համար, ապա դա նշանակում է, որ հիշողությունը, որն օգտագործվում է այս փոփոխականը պահելու համար, գտնվում է հավելվածի ստատիկորեն հատկացված հիշողության մեջ:

Կարո՞ղ ենք Const-ը օգտագործել ցնդող C-ում:

Այո՛։ Փոփոխական կարող է հայտարարվել որպես երկուսն էլ ցնդող և մշտական մեջ Գ . Կոնստ փոփոխիչը թույլ չի տալիս փոխել փոփոխականի արժեքը ներքին ծրագրի կողմից: Բայց դա չի նշանակում, որ արժեքը հաստատ փոփոխականը չպետք է փոխվի արտաքին կոդով:

Խորհուրդ ենք տալիս: