logo

מהו משתנה גלובלי?

משתנה הוא שם המוקצה לאזור אחסון שניתן לשלוט בו על ידי התוכנית. סוג של משתנה מציין את הגודל והתצורה של הזיכרון של המשתנה.

טווח הערך שניתן להכניס למשתנה מחושב לפני הכנסת הערך אליו, שכן יש להחליט על סוג המשתנה לפני הכנסת הערך לתוכו.

היקף המשתנים

היקף של משתנה הוא ממש תוחלת החיים של משתנה. זהו בלוק קוד שבו משתנה תקף או עדיין חי.

 function poo() { var a; } 

בתוך הפונקציה 'a', אנו מכריזים על משתנה 'poo'. ההיקף של אותו משתנה נשאר בתוך אותה פונקציה, ולא ניתן להשתמש בו מחוץ לפונקציה זו.

ישנם שלושה מקומות בהם נוכל להשתמש במשתנה בתכנות שלנו.

  • בפונקציה או בתוך בלוק אומרים שזה משתנים מקומיים
  • אם משתמשים בו מחוץ לכל הפונקציות, הוא נקרא כמשתנים גלובליים
  • אם נעשה בו שימוש בהגדרת פרמטרי הפונקציה, זה נקרא כפרמטרים פורמליים.

ההבדל העיקרי

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

משתנה מקומי

המשתנה המקומי מצוין בבלוק התכנות או בשגרות המשנה כצורה של משתנה המוצהר. המשתנה המקומי ממשיך לפני ביצוע הבלוק של הפונקציה. זה יאבד אוטומטית לאחר מכן.

דוגמה למשתנה מקומי

 public int sum(){ int x =4; int y=5; return x+y; } 

כאן, 'x' ו-'y' הם משתנים מקומיים

משתנה גלובלי

משתנה שצוין מחוץ לפונקציה או לבלוק של הקוד ידוע בשם משתנה גלובלי. יש לו טווח עולמי, מה שאומר שהוא שומר על הרלוונטיות שלו לאורך אורך החיים של התוכנית. לכן, כל תכונה שצוינה בתוכנית יכולה לגשת אליה בתוך התוכנית, אלא אם כן היא מוצלת.

דוגמה למשתנה גלובלי

 int x =4; int y=5; public int add(){ return x+y; } 

כאן, 'x' ו-'y' הם משתנים גלובליים.

יתרונות השימוש במשתנים גלובליים

  • ניתן לגשת למשתנה הגלובלי מכל הפונקציות או המודולים בתוכנית.
  • אנחנו צריכים רק להכריז על משתנה גלובלי חד פעמי מחוץ למודולים.
  • הוא משמש כאשר המשתמש צריך לגשת לאותם נתונים בכל התוכנית שוב ושוב.

חסרונות השימוש במשתנים גלובליים

  • כל כך הרבה משתנים מוכרזים כגלובליים, ואז הם נשארים בזיכרון עד להשלמת ביצוע התוכנית. זה יכול לעורר את הבעיה של אזל הזיכרון.
  • כל תכונה יכולה לשנות נתונים. כל משפט שנכתב בתוכנית ישנה את ערך המשתנה הגלובלי. בסביבות ריבוי משימות, זה יכול להציע תוצאות בלתי צפויות.
  • אנחנו צריכים לשנות את כל המודולים שבהם הם נקראים אם משתנים גלובליים מופסקים עקב שינוי קוד מחדש.

יתרונות השימוש במשתנים מקומיים

  • ערכי המשתנים נשארים ללא שינוי בזמן שהמשימה פועלת היא המשמעות הבסיסית של המשתנה Local.
  • אם משתנה בודד שפועל במקביל משתנה על ידי משימות רבות, התוצאה עלולה להיות בלתי צפויה. עם זאת, הכרזה עליו כמשתנה מקומי תפתור זאת.
  • אנו יכולים להקצות את אותו השם למשתנים בפונקציות שונות.
  • עם ביצוע הפונקציה, הזיכרון של המשתנה משוחרר.

חסרונות של משתנים מקומיים

  • שיטת איתור באגים של משתנה מקומי היא מאוד מסובכת.
  • נתונים פופולריים נדרשים להיות מועברים באופן קבוע מכיוון ששיתוף נתונים בין מודולים אינו אפשרי.
  • יש להם ספקטרום קטן מאוד.

מה יותר שימושי?

המשתנה המקומי והעולמי החיוני לא פחות בעת כתיבת תוכנית בכל שפה. כמות גדולה של המשתנה הגלובלי, לעומת זאת, יכולה לתפוס זיכרון עצום. מעבר לא רצוי למשתנים גלובליים הופך להיות קשה להגדרה. זה גם נבון להימנע מהכרזה על משתנים גלובליים שאינם רצויים.