מילים שמורות ב C שהשימוש בהם נדיר - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

מילים שמורות ב C שהשימוש בהם נדיר


yosefor

Recommended Posts

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

לא מזמן נזכרתי שיש עוד מילים שמורות שכמעט ולא משתמשים בהם שאני לא יודע איך להפעיל אותם.

המילים הם:

asm

auto

inline

register

restrict

volatile

אני רוצה לדעת איחך להשתמש בהם.

אני אשמח מאוד אם תוכלו לעזור לי בעיניין :-)

תודה רבה על כל עזרה,

יוסף אור

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

asm: מאפשר לך להכניס קוד אסמבלי בתוך התכנית.

auto: חסר משמעות, כל משתנה הוא ככה תמיד.

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

register: מבקש מהקומפיילר להחזיק את המשתנה באוגר, בשביל לעבוד איתו יותר מהר. זה גם די מיותר, כי בד"כ הקומפילר מספיק חכם לעשות את זה בעצמו.

restrict: אומר לקומפיילר שמצביע מסוים, ולא שום משתנה או פרמטר אחר בפונקציה הנוכחית, הוא היחיד שמצביע על איזור כלשהו בזכרון. זה מאפשר לקומפיילר לייעל את הקוד לפעמים.

volatile: אומר שמשתנה כלשהו יכול להשתנות מחוץ לתכנית, ולכן להימנע מלבצע ייעולים לגביו (כי הם יכולים לגרום לכך שהתוכנית תשתמש בערך לא נכון שלו).

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

תודה רבה :-)

אתה יכול להרחיב מעט על volatile ? זה נשמע שימושי...

ועוד שאלה אחת: באמצעות asm אני יכול לכתוב קוד אסמבלי בלי להשתמש במהדר לאסמבלי ? ז"א, זה יכול לחסוך הורדת מהדר לאסמבלי...

תודה על העזרה :-)

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

אתה יכול להרחיב מעט על volatile ? זה נשמע שימושי...

לא במיוחד. זה באמת שימושי רק כשאתה עובד עם קוד ברמה מאוד נמוכה (לדוגמה, קוד שמתממשק עם חומרה) ודברים כאלה. רוב המתכנתים לעולם לא יצטרכו להשתמש בזה.

ולגבי asm, אני מניח שזה אפשרי, אבל זה לא יתן לך את החופש של לכתוב תכנית שלמה באסמבלי.

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

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

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

volatile היא תכונה low level ורוב האנשים לא צריכים להשתמש בה.

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

ארכיון

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

×
  • צור חדש...