מהי ההנחיה #define ב-C++

Mhy Hhnhyh Define B C



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

הנחיות קדם-מעבד ב-C++ מסומנות ב- # (hash) סמל בתחילת ההצהרה. הנחיות קדם-מעבד נפוצות ב-C++ כוללות הכללת קובץ ו פקודות מאקרו הַגדָרָה. הנחיות אלו ממוקמות בדרך כלל מחוץ לפונקציה main() בחלק העליון של תוכנית C++. במהלך עיבוד מקדים, קובץ ביניים עם ה- .אני נוצרת הרחבה.

#define Direktiv ב-C++

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







הנה כמה מהדגשים העיקריים של #define Pre-processor



  • ב-C++, ההנחיה הקדם-מעבד #define משמשת להגדרת פקודות מאקרו.
  • מאקרו ב-C++ נקראים קבועים או ביטויים המוצהרים עם ההנחיה #define.
  • #define הנחיות נקראות גם הנחיות מאקרו.
  • כאשר נתקלת בהנחיה #define בתוכנית C++, שם המאקרו המוגדר מוחלף בערך או ביטוי קבועים בשלב ההידור הראשוני.

תחביר של #define Direktiv

התחביר לשימוש ב-#define הוא כדלקמן:



#define ערך מזהה

כאשר מזהה הוא השם של הקבוע או המאקרו המוגדרים, וערך הוא הערך שבו יש להחליף אותו בעת הידור הקוד.





דוגמה ל-#define Direktiv

להלן דוגמה שמסבירה כיצד ניתן להשתמש ב-#define בקוד C++:

#include

#define PI 3.14159

#define SQUARE(x) ((x) * (x))

int רָאשִׁי ( ) {

לְהַכפִּיל רַדִיוּס = 5.0 ;

לְהַכפִּיל אֵזוֹר = פאי * כיכר ( רַדִיוּס ) ;

סטד :: cout << 'אזור:' << אֵזוֹר << סטד :: endl ;

לַחֲזוֹר 0 ;

}

בדוגמה זו, אנו מגדירים שני קבועים באמצעות ההנחיה #define: PI, המייצג את הקבוע המתמטי pi, ו-SQUARE, שהוא מאקרו שמחשב את הריבוע של ערך נתון. לאחר מכן אנו משתמשים בקבועים אלה בקוד שלנו כדי לחשב את שטחו של מעגל עם רדיוס נתון.



ההבדל בין #define ל-const

שאלה נפוצה אחת שעולה כאשר דנים בהנחיית #define היא כיצד היא שונה משימוש במשתני const ב-C++. בעוד ששתי הגישות מאפשרות לך להגדיר קבועים שניתן להשתמש בהם בכל הקוד שלך, ישנם כמה הבדלים עיקריים ביניהם.

הבדל אחד עיקרי בין #לְהַגדִיר ו const הוא ש-#define היא הנחיית קדם-מעבד, בעוד const היא מילת מפתח שהיא חלק משפת C++ עצמה. המשמעות היא שקבועים המוגדרים באמצעות #define מוחלפים בערכים שלהם לפני הקומפילציה של הקוד, בעוד שמשתני const מטופלים על ידי המהדר עצמו.

הבדל מרכזי נוסף בין #define ל-const הוא שלמשתני const יש סוג מסוים, בעוד שקבועים המוגדרים באמצעות #define לא. המשמעות היא שאתה יכול להשתמש במשתני const במקומות שבהם נדרש סוג מסוים, בעוד שקבועים המוגדרים באמצעות #define עשויים שלא תמיד לעבוד במצבים אלה.

סיכום

ההנחיה #define היא הנחיית קדם-מעבד המשמשת להגדרת קבועים או פקודות מאקרו. זה מאפשר לנו להגדיר שמות סמליים או ערכים שמוחלפים לאורך הקוד לפני שתהליך ההידור בפועל מתרחש. קרא עוד על #define directive ב-C++ במאמר זה.