פורסם 2009 במרץ 2316 שנים מישהו יודע כיצד ניתן לעשות overload ב C רגיל (לא ++)זאת אומרת שפונקציה מסויימת תקבל מספר שונה של פרמטרים ותפעל לפי מספר הפרמטרים שקיבלה?
פורסם 2009 במרץ 2316 שנים אין כזו אפשרות ב-C. השיטה הנפוצה היא פשוט לתת שמות שונים לפונקציות.אופציה אחרת היא לכתוב פונקציה שיכולה לקבל מספר משתנה של ארגומנטים, ככה:http://www.cprogramming.com/tutorial/lesson17.htmlשים לב שאין דרך לדעת בזמן קומפילציה מה הטיפוסים של הארגומנטים (מבחינת הקומפיילר זה הכל זה *void) ולכן אתה צריך להעביר את המידע הזה לפונקציה איכשהו (באמצעות פרמטרים נוספים, לדוגמה).
פורסם 2009 במרץ 2316 שנים אני חושב שהוא דיבר על va_list כמו ב-printf.תחפש ברשת, הנה משהו שחפרתי מגוגל: http://bobobobo.wordpress.com/2008/01/28/how-to-use-variable-argument-lists-va_list/וגם http://publications.gbdirect.co.uk/c_book/chapter9/stdarg.htmlבקצרה:1) מגדירים פונקציה שמקבלת פרמטרים ומסתיימת ב- ...2) חייבת להיות דרך שהפונקציה תוכל לדעת בזמן ריצה כמה פרמטרים יש ואיזה סוג כל פרמטר. לדוגמא printf מפענחת את מחרוזת הפורמט שהוא הפרמטר הראשון.3) בתוך הפונקציה משתמשים ב-va_list va_arg והחברים שלהם.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.