» נושאי לימוד
» נושאי לימוד
יום חמישי 2 במאי 2024
שימוש בקבועים
דף ראשי  מתחילים לכתוב – עקרונות בקידוד  שימוש בקבועים גרסה להדפסה

                                                        

בשפות תכנות שונות יש דרכים שונות להשתמש בקבועים.

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

חשיבות הקבועים נובעת מהסיבות הבאות:

  • הקוד קריא יותר
    מישהו יודע מה הקוד הבא אמור לבצע?

    for (int i = 1; i <= 6; i++)
       for (int j = 1; j <= 6; j++)
       {
           if (IsBestPlay(i,j))
              SaveBestPlay(i,j);
       }

אם במקום 6 היינו משתמשים בקבוע:

const int MAX_DICE_NUM = 6;  

אז היה ברור שהקוד מבצע זריקת 2 קוביות ומציאת הצירוף הטוב ביותר מביניהן...

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

    OpenForm (location, "David", 12)

    עכשיו, נניח שיצאה הנחיה גורפת בפרויקט שכולם עוברים ל-Miriam. מה עושים? עוברים על עשרות המקומות בקוד ומשנים אותם ל-Miriam?
    שימוש בקבוע יאפשר לנו לשנות רק מקום אחד במידה ונקפיד להשתמש רק בו ולא במשתנים רגילים:

    OpenForm (location, SYSTEM_FONT, SYSTEM_FONT_SIZE)


    ואז נוכל לבצע את השינוי רק במקום אחד:

    const char* SYSTEM_FONT = "David";
    const int   SYSTEM_FONT_SIZE = 12;

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

מספר כללים לשימוש בקבועים:

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

 12-04-04 / 02:51  עודכן ,  03-04-04 / 13:47  נוצר ע"י ישי קנובל בתאריך 
 Naming Conventions הלכה למעשה - הקודםהבא - משפטי תנאי 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 1