מספר קסם (תכנות) – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
Xqbot (שיחה | תרומות)
מ בוט משנה: es:Número mágico
שורה 30:
סוג נפוץ אחר של מספרי קסם הם המזהים המופיעים בכותרת (header) של [[קובץ בינארי|קבצים בינאריים]] ושל הודעות ב[[פרוטוקול תקשורת|פרוטוקולי תקשורת]]. מטרתם לאפשר לתוכנה הקוראת את הקובץ או את ההודעה לבדוק באופן מיידי, על ידי השוואה פשוטה, האם המידע הבינארי הוא מהסוג שהיא מצפה לו. תוכנות קוראות מורכבות יותר יכולות גם לקרוא את המזהה ולברור מבין תוכנות אחרות, את זו המיועדת לטפל בסוג המידע המתאים למספר הקסם שקראה.
 
דוגמה למספר קסם כזה הוא הקבוע 0xCAFEBABE (ב[[בסיס הקסדצימלי]]) שמהווה את ארבעה ה[[בית (מחשב)|בתים]] הראשונים של כל קובץ מהודר בשפת תכנות [[JAVA]]. בבואו להריץ [[מחלקה (תכנות)|מחלקה]] נתונה, יכול ה-[[Java Virtual Machine|JVM]] לקרוא את ארבעת הבתים הראשונים ובמקרה שהם שונים ממספר הקסם, לדחות את המחלקה בהודעת שגיאה, מבלי לנסות לקרוא ממנה עוד. באופן דומה, כל הודעה בפרוטוקול התקשורת [[Server Message Block|SMB]], מתחילה בקבוע 0xff534d42, כאשר שלושת הבתים האחרונים הם ערכי האותיות SMB.
 
בעוד ששימוש כגון זה במספר קסם אינו רע כשלעצמו, עדיין ראוי שקוד המקור של התוכנה הקוראת את המידע הבינארי, כאשר היא משווה את מה שקראה עם מספר הקסם, תעשה זאת באמצעות קבוע בעל שם משמעותי ולא מספר סתום.