c++ templates - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

c++ templates


MrAlex

Recommended Posts

מה ש-inline עושה הוא לומר לקומפיילר "אם אתה יכול, תחליף את הקריאה לפונקציה בקוד עצמו". בדוגמה הזו, הקריאה לפונקציה (myswap(i1,i2 תוחלף ממש בשלוש שורות הקוד:


temp=i1;
i1=i2;
i2=temp;

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

אתה יכול לקרוא עוד בנוגע ל-inline כאן:

http://www.parashift.com/c++-faq/inline-and-perf.html

קישור לתוכן
שתף באתרים אחרים

אוקיי אז ניראה לי הבנתי

בעצם הגדרת הפונקצייה כINLINE במקרה הנ"ל תחסוך את הקריאות לעותקים שיווצרו בעת ההידור(כשיבנו ההתאמות לתבניות עם טיפוסי משתנים)

תודה :)

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...