מה הגודל של int?

GilBates

New member
מה הגודל של int?

האם במחשבים / שפות שונות גודל int הוא שונה? אני יודע שב-JAVA משתנה מסוג int הוא בגודל 4 בתים ובשפת C אני חושב שהוא 2 בתים. מה לגבי שאםר השפות / פלטפורמות ?
 

DadleFish

New member
שפת C לא מגדירה את הגודל של int.

היא מגדירה את היחסים בין הגדלים של המשתנים - למשל short יהיה קטן או שווה ל-int, ו-long יהיה גדול או שווה ל-int. תכל'ס זה קשור למערכת ההפעלה. ב-WINDOWS הגודל של int הוא 4 בתים.
 

GilBates

New member
תודה על התגובה, איש

אז תמיד זה קשור למע' הפעלה? כמה זה ביוניקס / MVS וכו' ?
 

idansof

New member
יותר קשור במעבד ובמהדר דווקא

זאת אומרת, כאשר מדובר במעבד עם רגיסטרים של 16 ביט לכל היותר, יהיה זה לא יעיל להגדיר משתנה int כ32 ביט. בגדול, רובם המכריע של מהדרים לx86 יגדירו int כ32 ביט(למעט אולי חלק מהמהדרים הישנים לדוס).
 
../images/Emo91.gifובדיוק בגלל זה...../images/Emo26.gif

בדיוק בגלל שהגודל של int משתנה בין סביבה לסביבה, כדאי להגדיר עם typedef בדיוק לאיזה גודל int מתכוונים... למשל:
UI_16 // for unsigned int 16 bit SI_32 // for signed int 32 bit F_32 // for 32 bit float F_64 // for 64 bit float​
או אם אתה מעדיף TUInt16, TInt32 וכו'... ככה אפשר לרכז את כל הגדרות ה-types בקובץ אחד שמגדיר אותם בנפרד לכל פלטפורמה, ובכל שאר הפרויקט השימוש בטיפוסים יהיה בלתי-תלוי לחלוטין בסביבה...
 
למעלה