ההבדל בין Inline ו מאקרו ההבדל בין

Anonim

Inline לעומת מאקרו

C + + הלך רחוק מדי בתחום תכנות המחשב בימים אלה. להיות שפה רבת עוצמה, זה לפעמים מקבל קצת מבלבל את המתכנתים בגלל ספריית ענק של פונקציות. פונקציה מוטבע הוא אחד מהם אשר יכול בקלות להיות מבולבל עם פקודות מאקרו בשפה.

זה לא שיש הבדל קטן בין השניים, אבל הם יכולים להיות קצת מבלבל בגלל התכונות שהם מחזיקים. במאמר זה, אנחנו נדון יותר על ההבדלים בין פונקציה inline ו פקודות מאקרו ב C + +.

-> ->

Inline

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

דוגמה:

-> ->

int int סכום (int x, int y)

{

החזרה (x + y);

}

מאקרו

פקודות מאקרו ב- C ++ מיישמות החלפת טקסט בקו תוכנה. כלומר, הם מחליפים טקסט לפי השינוי המוגדר בפונקציה. שלא כמו inline כמו פונקציה, מאקרו מתפעל את הקוד באמצעות פונקציה. לדוגמה:

#define דאבל (X) X * X

int y = 5;

int j = DOUBLE (++ y);

כאן, נקבל את הערך כמו 30! כמו השיחה נעשתה באמצעות מאקרו, "X" הוחלף ב- ++ y אשר עושה ++ y להיות מוכפל ב- ++ y אחר. זה עושה סך של 5 * 6 כי הוא 30 לא 6. שש יהיה התשובה הבסיסית אבל לא נכון.

עכשיו, פקודות מאקרו עלול לגרום כאן באג. אז פונקציה inline מגיע החילוץ על ידי העתקת הערכים לזכרם של המהדרים ולאחר מכן להרכיב אותו.

סיכום:

1. פונקציה מוטבעת יוצרת עותק של הגדרת הפונקציה.

2. מאקרו מחליף את הטקסט כמזוהה ומוגדר בתוך הפונקציה.

3. פונקציה מוטבעת מוחלת גם כאשר מאקרו אמור לגרום באג בתוכנית.