יום חמישי, 15 בדצמבר 2011

הרצאה חדשה


בשל החוקים החדשים אשר מגבילים את חופש הביטוי של המרצים באוניברסיטאות, המרצה הראשי בקורס "מבוא לשפת C" במוסד האקדמי בו אני לומד, שינה את אחד השיעורים על מנת שיהיה נקי מחשד לתעמולה שמאלנית.
והנה נוסח השיעור:


שיעור 6: מערכים

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

char sia[27];
כאשר כל אחד מהאברים ב-sia הוא character בפני עצמו. ליכוד יכול להכיל מקסימום 120 אברים, אך תוכנה בעלת ליכוד כזה רחב נחשבת לתוכנה גרועה מאוד.

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

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

אמנם האברים בליכוד נקראים "משתנים", אך הם משתנים לעתים רחוקות מאוד. תקנים חדשים שאמורים להיכנס לתוקף בקרוב קובעים כי אפשר להתייחס לאברי הליכוד כקבועים.

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

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


היסטוריה

הליכוד אמנם הוגדר לראשונה בשנת 73', אך רק בשנת 77' הוא נכנס רשמית לתקן והחלו לעשות בו שימוש באמצעות הפקודה-()begin .

כיום אין שום שימוש פרקטי לפקודה
()begin, אך בקבוע BEGIN עושים שימוש בהשוואות לוגיות (למשל, הביטוי   BB >= BEGIN  מחזיר כמובן שקר).

מצביעים - Pointers

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

מצביע לליכוד הוא בעל מקסימום בית אחד, ובכל זאת הוא מצביע לליכוד.

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