האם נוכל להשתמש בסטטי ובנדיף ביחד ב-C?
האם נוכל להשתמש בסטטי ובנדיף ביחד ב-C?

וִידֵאוֹ: האם נוכל להשתמש בסטטי ובנדיף ביחד ב-C?

וִידֵאוֹ: האם נוכל להשתמש בסטטי ובנדיף ביחד ב-C?
וִידֵאוֹ: Thomas Campbell: Ego, Paranormal Psi, My Big TOE 2024, נוֹבֶמבֶּר
Anonim

סטָטִי משתנים שומרים על ערכם בין קריאות לפונקציה. נָדִיף משתנים (שאיננו ההפך מ סטָטִי ) הם בשימוש כאשר משתנה הוא בשימוש גם בתוך ISR (שגרת שירות פסיקה) וגם מחוצה לו. נָדִיף אומר למהדר לטעון תמיד זמינים מ-RAM במקום לאחסן אותו במטמון ב-CPUregister.

באופן דומה אפשר לשאול, האם אנחנו יכולים להשתמש בסטטי ובנדיף ביחד?

אפילו אם אתה גישה א סטָטִי ערך דרך חוטים מרובים, כל חוט פחית יש את עותק המטמון המקומי שלו! כדי להימנע מכך אתה יכול להכריז על המשתנה בתור נדיף סטטי וזה רָצוֹן לאלץ את השרשור לקרוא בכל פעם את הערך הגלובלי. למרות זאת, נָדִיף אינו תחליף לסנכרון תקין!

באופן דומה, מדוע אנו משתמשים בנדיף ב-C? C נדיף מילת מפתח היא מוקדמת שמוחלת על משתנה כאשר הוא מוצהר. זה אומר למהדר שהערך של המשתנה עשוי להשתנות בכל עת - מבלי שננקטת כל פעולה על ידי הקוד שהמהדר מוצא בקרבת מקום. ההשלכות של זה חמורות למדי.

בהתחשב בכך, מה המשמעות של נדיף סטטי ב-C?

סטָטִי מתייחס להיקף המשתנה. אם המשתנה הוא גלובלי, זה אומר שה-scope מוגבל לקובץ המקור שבו הוא הוכרז. אם המשתנה הוא מקומי ל-afunction, אז זה אומר שהזיכרון המשמש להחזיק משתנה זה נמצא בזיכרון שהוקצה סטטית של היישום.

האם נוכל להשתמש ב-const עם נדיף ב-C?

כן. משתנה פחית יוכרז כשניהם נָדִיף ו קָבוּעַ ב ג . קונסט השינוי אינו מאפשר לשנות את הערך של המשתנה לפי תוכנית פנימית. אבל, זה לא אומר שהערך של const אין לשנות את המשתנה על ידי קוד חיצוני.

מוּמלָץ: