הדוגמה הקונקרטית הכי גדולה שנתקלתי בה
(מבחינת כמות הקבצים שהיה צריך לשנות) היא אותה שורה ארורה שהצגתי בתחילת ההודעה הקודמת.
 
עבור MS, זו הדרך המקובלת והמומלצת למנוע מקבצי כותר להיכלל פעמיים (או יותר) וליצור שגיאות קומפילציה.
אבל מסתבר, שהיא לא חלק משום תקן, ולכן אם עוברים לקומפיילר שלא מתוצרת MS, יש לשנות כל קובץ h בפרויקט ולהחליף הוראה זו במקרו עוטף.
 
עוד דוגמה נהדרת, שאולי לא כ"כ נפוצה בקוד פרודקשין, אבל בכל זאת קיימת ומתועדת היטב היא אוסף היצורים הזה:
https://msdn.microsoft.com/en-us/library/w40768et.aspx
 
מישהו ב-MS החליט, שהיות והחלק מהפונקציות הסטנדרטיות נחשבות ללא בטוחות לשימוש, הם יציעו גרסאות משלהם לפונקציות האלה, עם תוספת קטנה לשם הפונקציה.
 
רק מה - למרות שהדבר הזה נראה כאילו הוא שייך לספריה הסטנדרטית של השפה, בפועל מי שישתמש בו בקוד יהפוך את הקוד לתלוי פלטפורמה.
 
והנה דוגמה שאפילו לא קשורה לתכנות:
שולח קובץ טקסט פשוט במייל, המקבל מתלונן שהקובץ כולו בשורה אחת.
 
מכיר את התופעה?
הכלל בגלל שסוף שורה מוגדר שונה בין מערכות הפעלה שונות.
 
אה, רגע נזכרתי בעוד משהו:
בזמנו, התייעץ פה משתמש לגבי בעיה שנוצרה לו כשהוא ניסה לשלוח ספריה דינמית ללקוח (קובץ DLL).
 
אז דובר על LIB והצורך בו.
משהו שמפתחי MS מורגלים לשימוש בו, אבל בפועל הוא קובץ מיותר, שאאל"ת קשור היסטורית לכך ש-MS יצרה calling convention שונה בין מערכת ההפעלה שלה בפועל לכלי הפיתוח שלה עצמה.
 
אז מה? זה פרט של מערכת הפעלה, או פרט שכל מפתח אפליקציה שרוצה להשתמש בספריה חיצונית צריך לדעת?
(מבחינת כמות הקבצים שהיה צריך לשנות) היא אותה שורה ארורה שהצגתי בתחילת ההודעה הקודמת.
 
עבור MS, זו הדרך המקובלת והמומלצת למנוע מקבצי כותר להיכלל פעמיים (או יותר) וליצור שגיאות קומפילציה.
אבל מסתבר, שהיא לא חלק משום תקן, ולכן אם עוברים לקומפיילר שלא מתוצרת MS, יש לשנות כל קובץ h בפרויקט ולהחליף הוראה זו במקרו עוטף.
 
עוד דוגמה נהדרת, שאולי לא כ"כ נפוצה בקוד פרודקשין, אבל בכל זאת קיימת ומתועדת היטב היא אוסף היצורים הזה:
https://msdn.microsoft.com/en-us/library/w40768et.aspx
 
מישהו ב-MS החליט, שהיות והחלק מהפונקציות הסטנדרטיות נחשבות ללא בטוחות לשימוש, הם יציעו גרסאות משלהם לפונקציות האלה, עם תוספת קטנה לשם הפונקציה.
 
רק מה - למרות שהדבר הזה נראה כאילו הוא שייך לספריה הסטנדרטית של השפה, בפועל מי שישתמש בו בקוד יהפוך את הקוד לתלוי פלטפורמה.
 
והנה דוגמה שאפילו לא קשורה לתכנות:
שולח קובץ טקסט פשוט במייל, המקבל מתלונן שהקובץ כולו בשורה אחת.
 
מכיר את התופעה?
הכלל בגלל שסוף שורה מוגדר שונה בין מערכות הפעלה שונות.
 
אה, רגע נזכרתי בעוד משהו:
בזמנו, התייעץ פה משתמש לגבי בעיה שנוצרה לו כשהוא ניסה לשלוח ספריה דינמית ללקוח (קובץ DLL).
 
אז דובר על LIB והצורך בו.
משהו שמפתחי MS מורגלים לשימוש בו, אבל בפועל הוא קובץ מיותר, שאאל"ת קשור היסטורית לכך ש-MS יצרה calling convention שונה בין מערכת ההפעלה שלה בפועל לכלי הפיתוח שלה עצמה.
 
אז מה? זה פרט של מערכת הפעלה, או פרט שכל מפתח אפליקציה שרוצה להשתמש בספריה חיצונית צריך לדעת?