אנו נתקלים לעתים קרובות בסוגי נתונים כמו int , לָצוּף , ו לְהַשְׁחִיר בעת תכנות ב-C. עם זאת, size_t הוא סוג נתונים המועסק לעתים קרובות בתוכניות C אך הוא פחות מוכר. בפוסט זה בבלוג, נעבור על size_t's הַגדָרָה, תחביר , ו דוגמא עם פלט כדי להראות כיצד להשתמש בו.
ספריית תקן C stddef.h קובץ header מגדיר את סוג הנתונים של מספר שלם ללא חתימה size_t . הוא משמש לעתים קרובות עבור זיכרון הַקצָאָה ו מניפולציה של חיץ ומשמש לביטוי גודל אובייקט בבתים. הגודל המקסימלי של כל אובייקט שניתן להקצות בזיכרון של מערכת נתונה מובטח להיות מיוצג על ידי size_t סוג נתונים .
תחביר של size_t
התחביר של size_t הוא כדלקמן:
size_t variable;
א משתנה size_t מוצהר באמצעות ה size_t מילת מפתח. ניתן להשתמש במשתנה לאחסון גודל אובייקט וקיבל את השם שם משתנה .
דוגמה לשימוש ב-size_t
באיור זה, נשתמש size_t כדי לקבוע את גודל המערך ולהדפיס אותו למסוף.
#include #include int main() { int array[] = {1, 2, 3, 4, 5}; size_t s =sizeof(array) / sizeof(array[0]); printf('Size of array: %zu ', s); return 0; }
תְפוּקָה:
הפלט הבא אמור להופיע במסוף כאשר אנו מפעילים תוכנית זו:
Size of array: 5
ה משתני גודל ערך של 5 , המתאים למספר האלמנטים במערך, מסומן על ידי פלט זה.
הֶסבֵּר:
מספר אקראי בין 1 ל-10
בתוכנית זו אנו מכריזים תחילה על א מערך מספרים שלמים של חמישה אלמנטים . לאחר מכן, גודל המערך בבתים נקבע על ידי הכרזה על a משתנה size_t עם ה גודל המפעיל . מאז גודל המפעיל מחזירה את הגודל הכולל של המערך בבתים, נחלק אותו בגודל של אלמנט אחד (במקרה זה, int ) כדי לקבוע את מספר האלמנטים הכולל של המערך.
לאחר מכן, גודל המערך מודפס לקונסולה באמצעות ה- printf פוּנקצִיָה. ה size_t ערך סוג הגודל מודפס באמצעות ה- %ל מפרט פורמט.
בנוסף, size_t משולב לעתים קרובות עם סוגי נתוני C נוספים ופעולות כמו malloc , calloc , realloc , ו סטרלן . אלה פונקציות ו סוגי מידע תלוי ב size_t כדי להקצות ולנהל זיכרון ביעילות בתוכנית.
מחרוזת ג'אווה בוליאנית
לדוגמה, הטיעון שסופק ל- פונקציית malloc הוא מסוג size_t ומייצג את מספר הבתים שיוקצו בעת שימוש בפונקציה להקצאה דינמית של זיכרון. ערך ההחזר מ- סטרלן הפונקציה היא גם מסוג size_t ומייצג את ספירת התווים של המחרוזת, הקובעת את אורך המחרוזת.
עִרבּוּב חתם ו לא חתום מספרים כשעובדים עם size_t היא בעיה נפוצה שעלולה לגרום להתנהגות בלתי צפויה של התוכנית ולשגיאות. כאשר עוסקים בגדלי אובייקטים, חשוב להשתמש תמיד size_t כדי לוודא שהתוכנית מקצה ומתפעלת זיכרון כהלכה.
חשוב לזכור זאת size_t's גודל מדויק יכול להשתנות בהתבסס על ארכיטקטורת המערכת והמהדר בשימוש. על מערכת 32 סיביות , size_t הוא בדרך כלל שווה ערך ל-an מספר שלם ארוך ללא סימן , ועל א מערכת 64 סיביות , הוא שווה ערך למספר שלם ארוך ללא סימן. חיוני לעיין בתיעוד המערכת ולאשר שסוג הנתונים המתאים משמש עבור גדלי אובייקטים כדי למנוע בעיות כלשהן עם הצפת מספרים שלמים.
סיכום:
לסיכום, ה size_t סוג נתונים בסיסי בשפת התכנות C מייצג את גודל האובייקט בבתים. הוא משמש לעתים קרובות כדי להקצות את כמות הזיכרון הדרושה עבור אובייקט יחד עם נהלי הקצאת זיכרון כמו malloc , calloc , ו realloc .
אחד היתרונות המרכזיים של אימוץ הוא זה size_t מציע דרך עקבית לבטא גדלי אובייקטים על פני פלטפורמות ומהדרים רבים. בעבודה עם מתכנתים, זה חייב להיות ניתן להעברה בין מערכות הפעלה שונות.
היכולת של size_t כדי לסייע במניעת בעיות כמו מספר שלם הצפה ו תת זרימה , שעלול לגרום לשגיאות גישה לזיכרון ולבעיות אחרות, הוא יתרון משמעותי נוסף. מתכנתים יכולים ליצור מתכנתים אמינים ובטוחים יותר על ידי ניהול גדלי אובייקטים עם size_t .
כל הדברים נחשבים, size_t הוא כלי חיוני עבור מתכנתי C. על ידי הבנת התחביר והיישום המתאים שלו, מתכנתים עשויים לפתח קוד יעיל יותר, אמין וללא שגיאות כאשר עובדים עם גדלי אובייקטים.