შეგვიძლია C-ში ერთად გამოვიყენოთ სტატიკური და არასტაბილური?
შეგვიძლია C-ში ერთად გამოვიყენოთ სტატიკური და არასტაბილური?

ვიდეო: შეგვიძლია C-ში ერთად გამოვიყენოთ სტატიკური და არასტაბილური?

ვიდეო: შეგვიძლია C-ში ერთად გამოვიყენოთ სტატიკური და არასტაბილური?
ვიდეო: USB 3 2 - USB4 Power Delivery System and Troubleshooting for the IT Professional 2024, აპრილი
Anonim

სტატიკური ცვლადები ინარჩუნებენ მნიშვნელობას ფუნქციების გამოძახებებს შორის. არასტაბილური ცვლადები (რომელიც არ არის საპირისპირო სტატიკური ) არიან გამოყენებული როდესაც ცვლადი არის გამოყენებული როგორც ISR-ის (შეწყვეტის სერვისის რუტინის) ფარგლებში, ასევე მის გარეთ. არასტაბილური ეუბნება შემდგენელს, რომ ყოველთვის იტვირთოს ხელმისაწვდომი RAM-დან, ვიდრე CPUregister-ში ქეშირება.

ანალოგიურად შეიძლება ვინმემ იკითხოს, შეგვიძლია თუ არა ერთად გამოვიყენოთ სტატიკური და არასტაბილური?

Მაშინაც კი როცა შენ წვდომა ა სტატიკური მნიშვნელობა მრავალი ძაფით, თითოეული ძაფით შეუძლია გქონდეთ მისი ადგილობრივი ქეშის ასლი! ამის თავიდან ასაცილებლად შენ შეგიძლია გამოაცხადეთ ცვლადი როგორც სტატიკური არასტაბილური და ეს ნება აიძულეთ ძაფი ამოიკითხოს ყოველ ჯერზე გლობალური მნიშვნელობა. თუმცა, არასტაბილური არ არის სწორი სინქრონიზაციის შემცვლელი!

ანალოგიურად, რატომ ვიყენებთ არასტაბილურ C-ში? C-ის არასტაბილურია საკვანძო სიტყვა არის კვალიფიკატორი, რომელიც გამოიყენება ცვლადზე, როდესაც ის გამოცხადებულია. ის ეუბნება კომპილერს, რომ ცვლადის მნიშვნელობა შეიძლება შეიცვალოს ნებისმიერ დროს - კოდის მიერ რაიმე ქმედების განხორციელების გარეშე, რომელსაც კომპილატორი პოულობს იქვე. ამის შედეგები საკმაოდ სერიოზულია.

ამის გათვალისწინებით, რას ნიშნავს სტატიკური არასტაბილური C-ში?

სტატიკური ეხება ცვლადის ფარგლებს. თუ ცვლადი გლობალურია, ეს ნიშნავს, რომ სფერო შემოიფარგლება იმ წყაროს ფაილით, რომელშიც ის იყო გამოცხადებული. თუ ცვლადი ლოკალურია ფუნქციისთვის, მაშინ ეს ნიშნავს, რომ მეხსიერება, რომელიც გამოიყენება ამ ცვლადის შესანახად, არის აპლიკაციის სტატიკურად გამოყოფილ მეხსიერებაში.

შეგვიძლია გამოვიყენოთ const არასტაბილურ C-ში?

დიახ. ცვლადი შეუძლია გამოცხადდეს როგორც ორივე არასტაბილური და მუდმივი in C . კონსტ მოდიფიკატორი არ იძლევა ცვლადის მნიშვნელობის შეცვლას შიდა პროგრამის მიერ. მაგრამ, ეს არ ნიშნავს იმას, რომ ღირებულება კონსტ ცვლადი არ უნდა შეიცვალოს გარე კოდით.

გირჩევთ: