פורסם 2011 באוגוסט 2614 שנים למדתי את כל שפת C, וגם כתבתי מספר פרוייקטים קטנים בעזרתו.לא מזמן נזכרתי שיש עוד מילים שמורות שכמעט ולא משתמשים בהם שאני לא יודע איך להפעיל אותם.המילים הם:asmautoinlineregisterrestrictvolatileאני רוצה לדעת איחך להשתמש בהם.אני אשמח מאוד אם תוכלו לעזור לי בעיניין :-)תודה רבה על כל עזרה,יוסף אור
פורסם 2011 באוגוסט 2614 שנים asm: מאפשר לך להכניס קוד אסמבלי בתוך התכנית.auto: חסר משמעות, כל משתנה הוא ככה תמיד.inline: לקריאה לפונקציות יש תקורה מסויימת - העברת המשתנים לפונקציה, קפיצה למקום אחר בקוד ואז חזרה למקום המקורי. אם הפונקציה מאוד קצרה (לדוגמה, אם זו פונקציה של שורה אחת) אז לפעמים לקומפיילר יותר יעיל "להדביק" את הקוד של הפונקציה במקום לקרוא לה. זה יכול להגדיל את הנפח של התכנית, אבל לייעל אותה מבחינת זמן ריצה. כששמים inline בהגדרה של פונקציה, זה "ממליץ" לקומפיילר לבצע את הייעול הזה (הוא עדיין לא חייב, ויש מקרים שבהם inline בכל מקרה לא יעשה כלום).register: מבקש מהקומפיילר להחזיק את המשתנה באוגר, בשביל לעבוד איתו יותר מהר. זה גם די מיותר, כי בד"כ הקומפילר מספיק חכם לעשות את זה בעצמו.restrict: אומר לקומפיילר שמצביע מסוים, ולא שום משתנה או פרמטר אחר בפונקציה הנוכחית, הוא היחיד שמצביע על איזור כלשהו בזכרון. זה מאפשר לקומפיילר לייעל את הקוד לפעמים.volatile: אומר שמשתנה כלשהו יכול להשתנות מחוץ לתכנית, ולכן להימנע מלבצע ייעולים לגביו (כי הם יכולים לגרום לכך שהתוכנית תשתמש בערך לא נכון שלו).
פורסם 2011 באוגוסט 2814 שנים מחבר תודה רבה :-)אתה יכול להרחיב מעט על volatile ? זה נשמע שימושי...ועוד שאלה אחת: באמצעות asm אני יכול לכתוב קוד אסמבלי בלי להשתמש במהדר לאסמבלי ? ז"א, זה יכול לחסוך הורדת מהדר לאסמבלי...תודה על העזרה :-)
פורסם 2011 באוגוסט 2814 שנים אתה יכול להרחיב מעט על volatile ? זה נשמע שימושי...לא במיוחד. זה באמת שימושי רק כשאתה עובד עם קוד ברמה מאוד נמוכה (לדוגמה, קוד שמתממשק עם חומרה) ודברים כאלה. רוב המתכנתים לעולם לא יצטרכו להשתמש בזה.ולגבי asm, אני מניח שזה אפשרי, אבל זה לא יתן לך את החופש של לכתוב תכנית שלמה באסמבלי.
פורסם 2011 באוגוסט 2914 שנים volatile משמש בתכנות מערכות כאשר צריך להבטיח שגישות לזכרון יעשו באותו סדר שבו הן כתובות בקוד, ויראו באותו סדר בו הן בוצעו.זה חשוב כשעובדים עם חומרה, או עם קוד (תשתיתי) מרובה מעבדים וחוטים. אחד בהתוצאות של שימוש ב-volatile זה שזה מבטל הרבה אופטימיזציות לגבי המשתנה, ולפעמים זה נוח.volatile היא תכונה low level ורוב האנשים לא צריכים להשתמש בה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.