פורסם 2010 בינואר 2715 שנים אחרי 5 שנים שלא נגעתי בשפת C הורדתי Dev c++ כתבתי סתם תוכנית בסיסית כדי לראות שהקומפיילר עובד אבל הוא מציג לי שגיאה שאני רשום void main ורק שאני רושם int main אפשר לקמפל את התוכנית מה ההבדל בינהם ? הנה דוגמא לתוכנית : #include<stdio.h>int main(){ printf("Hello HW!"); } ושאני כותב תוכנית עם יותר פקודות ומשתנים התוכנית רצה גם עם void וגם עם int תודה על העזרה
פורסם 2010 בינואר 2715 שנים במשפט אחד: אסור להשתמש ב-void main, רק ב-int main.השימוש ב-void main לא תקני, וקומפילרים מודרניים יזהירו מפניו (ואפילו יזרקו שגיאת קומפילציה).
פורסם 2010 בינואר 2715 שנים מחבר טוב , תודהשמתי לב שתמיד שאני רושם int במקום void זה עובדאני פשוט זוכר שלמדתי C בבית ספר זה היה עם void ( עבדנו שם עם קומפיילרים ישנים)יש לזה הסבר ? למה פתאום void כבר לא תקין? סתם מסקרנות...
פורסם 2010 בינואר 2715 שנים ה"פתאום" הזה קרה לפני 20 שנה (זה חלק מתקן C90, שנוצר ב-1990, כפי שמעיד עליו שמו).רק בשנים האחרונות קומפיילרים התחילו להחמיר מבחינת התקנים, ולכן קומפיילרים ישנים יותר הרשו להשתמש ב-void main (כאמור, יש כאלה שהזהירו מזה, אבל עדיין נתנו לך לקמפל). הבעיה היא שבבתי ספר לא יודעים ללמד, ועד היום מלמדים אנשים לכתוב בצורה לא תקנית.
פורסם 2010 בינואר 2715 שנים מחבר כנראה שהבעיה היא לא רק בבתי ספר, כי גם בספרים שהורדתי מופיע void main תודה
פורסם 2010 בינואר 2715 שנים הרבה ספרים בעברית הם די זבל.סתם שתדע, היו פלטפורמות (ישנות ונידחות, לא דברים שסביר שתתקל בהן) שבהן תוכנה שנכתבה עם void main לא היתה עוברת link במקרה הטוב, או קורסת ביציאה במקרה הרע.
פורסם 2010 בינואר 2815 שנים כנראה שהבעיה היא לא רק בבתי ספר, כי גם בספרים שהורדתי מופיע void main תודה חלק מהספרים עתיקים ולא מעודכנים לתקן, והכותבים של חלק מהם אפילו לא טרחו להתאים את עצמם לתקן של זמן הכתיבה (יש מלא ספרים שמשתמשים בconio.h, שהוא אף פעם לא היה סטנדרטי) ככלל אצבע, תמיד תשתדל לכתוב קוד תקני. כשמתכנתים משהו רציני, אף פעם אי אפשר לדעת אם פתאום ירצו לקחת את זה לפלטפורמה אחרת, או לקמפל דרך קומפיילר אחר, ואז זה חתיכת כאב ראש לתקן את העסק.
פורסם 2010 בינואר 2915 שנים מעבר לפורטביליות, יש עוד יתרונות תחזוקיתיים לכתיבה בשיטות סטנדרטיות ועם קוד תקני וספריות סטנדרטיות:* חוסכת באגים (כיוון ששיטות, ספריות וקוד סטנדרטי עברו הרבה משתמשים ולכן יהיו יחסית מובנים היטב ועם מעט באגים.* הרבה פעמים קלה יותר למתכנתים אחרים להבין מיד, כך שזה מקל על תחזוק הקוד.* מקטינה את הדרישות על סביבת הקומפילציה - יש פחות רכיבים אשר הקוד תלוי בהם, ולכן קל יותר להרים סביבת פיתוח על מחשב אחר, לבן אדם אחרץ* גם אחרי הרבה שנים, סביר להניח שרכיבים וכלים סטנדרטיים יהיו מתוחזקים ועדכניים. לדוגמא אין שום קומפיילר מודרני (או אפילו בן 10 שנים) שמכיל conio, אבל אני יכול לקמפל כמעט בלי בעיה קוד C סטנדרטי בן 20 שנה (ואפילו יותר!).כמובן שלפעמים עדיין צריך וכדאי לעבוד עם דברים פחות סטנדרטיים, אבל זו צריכה להיות בחירה מודעת.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.