c|מבקש הסבר על קוד - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

c|מבקש הסבר על קוד


eliom

Recommended Posts

שוב, define# מגדיר לקומפיילר, לפני שהוא עושה קומפילציה לקוד, לעבור על כל הטקסט ולעשות replace לכל מופע של GRAMS_PER_POUND במקרה שלך למספר 454. תחשוב שאתה יכול לעשות את זה ידנית - עם שימוש ב-define הרבה יותר קריא לדעת שזה GRAMS_PER_POUND ולא איזה מספר "קסם" כמו 454 שמישהו אחר לא ידע מה המספר הזה בכלל מייצג.

תקן אותי אם אני טועה define# בקוד הספציפי שהבאתי.זה שאני מכניס בקלט את המשקל וזה ממיר לגרם?.

ולמה אתה מתכוון שאתה אומר מופע?

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

תם : לא עדיף לעשות את זה באמצעות קבוע ? (const)

מה ההבדל ?

כן, עדיף להשתמש בקבוע (const) על פני define.

ההבדל הוא ש-define זה, כפי שנאמר כאן, כמו לבצע search and replace לפני הקומפילציה. לדוגמה אם יש כזה דבר:

#define PI 3.14

אז לפני הקומפילציה, בכל מקום שבו מופיעה בקוד המילה PI, היא תוחלף ב 3.14.

לעומת זאת, אם מגדירים:

const double PI = 3.14;

אז זה מגדיר משתנה בשם PI מטיפוס double שהערך שלו הוא 3.14.

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

לפעמים במערכות embeded הזיכרון המיותר שמוקצה חשוב.

יתרון מעשי יותר - שרשור של כמה הגדרות בתור string (למשל הגדרת סיומת של קובץ).

עניין נוסף - יש קומפיילרים בהם עם קצת מאמץ תוכל לשנות ערך של const (עם מצביעים למשל). define הוא בטוח קבוע.

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

ארכיון

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

×
  • צור חדש...