שיחה:C++/משתנים

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה לניווט קפיצה לחיפוש

שגיאה בגודל תו[עריכה]

גודל תו הוא בדיוק בית 1 על פי הסטנדרד, ולא לפחות 1 כפי שנכתב כאן בטבלה. אגב, ראיתי המון קוד שהיה נשבר אם גודלו היה גדול ממש מ1. Thedsadude 09:29, 5 בדצמבר 2007 (IST)

התקן אומר שגודל ה-char הוא לפחות 8 סיביות, לא בדיוק. לידיעתך לא בכל המחשבים גודל הבית הוא 8 סיביות, יש אפילו מחשבים עשרוניים. יש לך את המקרו: CHAR_BIT בשפת C שאומר לך את מספר הסיביות במשתנה התווי. נראה לי שאני יודע למה אתה מתכוון, אתה מתבלבל כי אתה חושב ש-sizeof מודד את הגודל בביתים? הוא לא. הוא מודד בתוים. sizeof(char)‎ תמיד יחזיר 1. גם אם גודל התו הוא 16 סיביות. למשל אם sizeof(int) == 4 אז זאת לא אומרת שהמשתנה השלם הוא בגודל 4 בתים, אלא שהוא תופס 4 תווים. ראה בספרו של סטרוסטרופ The C++ Programming Language 3rd Edition פרק 4.6, ויקי האנגלית, כאן וכאן. ybungalobill 11:29, 5 בדצמבר 2007 (IST)
סבבה. תודה על ההערה המחכימה.Thedsadude 11:51, 5 בדצמבר 2007 (IST)
אהההההההה! עכשיו אני צריך לשנות את ההסבר בספר על C במיליון מקומות. ייאוש! תודה בכל מקרה. Thedsadude 11:53, 5 בדצמבר 2007 (IST)

אתחול משתנים[עריכה]

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

עלות מבחינת ביצועים??? להיפך. לטיפוסים פשוטים זה פחות משמעותי כי האתחול יהיה חד פעמי. לטיפוסים מורכבים (מחלקות עם בנאים) איתחול בשני שלבים גורם לפגיעה בביצועים בשל איתחול ברירת מחדל ואחר כך השמת הערך הרצוי. אתה יכול לגבות את דבריך על ידי דוגמה למה בדיוק אתה מתכוון? ybungalobill 20:15, 16 באוקטובר 2009 (IST)