פורסם 2009 ביוני 2716 שנים אני כותב interpreter ל ***brainf ב C++ ואני רוצה להיות בטוח שכשאני מוסיף 1 למשתנה מסוג unsigned char שמכיל 255 ערכו יהיה 0, ולהיפך.האם זה תמיד יהיה ככה או שצריך להגיד משהו עם define או הגדרות קומפיילר כלשהן כדי לוודא שזה יקרה?או שאין בכלל דרך לוודא שזה יהיה ככה על כל מכונה וצריך לכתוב קוד עבור מקרי הקצה?
פורסם 2009 ביוני 2716 שנים אם תשתמש ב-unsigned char לא תהיה שום בעיה. לחילופין, תשתמש ב-int ותמיד תעשה & עם 0xff.
פורסם 2009 ביוני 2816 שנים מחבר תודה, סיימתי את ה interpreter, הוא לא הכי מהיר, אבל לפי מה שבדקתי הוא עובד כמו שצריך . צירפתי את הקוד ואת הקובץ המקומפל למי שמעוניין. [attachment deleted by admin]
פורסם 2009 ביוני 2816 שנים >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.
פורסם 2009 ביוני 2816 שנים Nice! ואם הקוד של Zelig עןשה מה שהוא צריך לעשות אז זה אכן עובד ;Dבכל מקרה כמה הערות בקשר לקוד:אתה כותב ב C++ אז למה להתשמש בקריא של קבצים משפת C? ל C++ יש מנגון יפה של קריאה מקובץ. ולא משנה מה השפה (C/C++) יש דרך לקרוא את כל הקובץ לחוצץ במקום לקרוא תו תו, שים לב כמה פעמים אתה יוצר אובייקט של סטרינג כאשר אתה קורא את הקובץ תו-תו.הימנע מלהשתמש ב DEFINE במיוחד בדרים כמו הגדרת טיפוסים חדשים, בשביל זה יש typedef.זהו חוץ מזה כל הכבוד ^^ אהבתי את הרעיון
פורסם 2009 ביוני 2816 שנים בעקרון define זה דבר בעייתי. כשאתה מגדיר משהו באמצעות define, אז מה שקורה הוא שpreprocessor לוקח את הערך שהגדרת ופשוט מדביק אותו בכל המקומות שבהם אתה משתמש בו. זה יכול לגרום לכל מיני בעיות אם אתה לא משתמש בו בצורה נכונה. לדוגמה:const int NUMBER = -42;int main(){ int x = -NUMBER;}תחשוב מה יקרה עם תשתמש ב-define במקום ב-const int.חוץ מזה, המילים השמורות typedef ו-const נועדו בדיוק למצבים האלה, אז למה לא להשתמש בהן?נ.ב. חיפוש קצר בגוגל ייתן לך עוד כל מיני דוגמאות בהן עדיף להשתמש ב-typedef וב-const על פני define.
פורסם 2009 ביוני 2816 שנים מחבר Nice! ואם הקוד של Zelig עןשה מה שהוא צריך לעשות אז זה אכן עובד ;D עובד נהדר בכל מקרה כמה הערות בקשר לקוד: אתה כותב ב C++ אז למה להתשמש בקריא של קבצים משפת C? ל C++ יש מנגון יפה של קריאה מקובץ. ולא משנה מה השפה (C/C++) יש דרך לקרוא את כל הקובץ לחוצץ במקום לקרוא תו תו, שים לב כמה פעמים אתה יוצר אובייקט של סטרינג כאשר אתה קורא את הקובץ תו-תו. א) אני לא מכיר/זוכר את המנגנון של C++ :-\ ב) אני יודע שיש דרכים יותר טובות מלקרוא תו תו, הבעיה שהדרכים שאני מכיר מחזירות מחרוזות בסגנון c והשתמשתי פה בטיפוס string, והחלטתי ללכת על מה שאני יודע במקום להתעקב על הקטע הזה.. הימנע מלהשתמש ב DEFINE במיוחד בדרים כמו הגדרת טיפוסים חדשים, בשביל זה יש typedef. צודק, התבלבלתי פה. זהו חוץ מזה כל הכבוד ^^ אהבתי את הרעיון תודה .
פורסם 2009 ביולי 2416 שנים ד.א. INT OVERFLOW מאט את התוכנית בהרבה. תנסה להימנע מINT OVERFLOW כמה שיותר.
פורסם 2009 ביולי 2416 שנים ד.א. INT OVERFLOW מאט את התוכנית בהרבה. תנסה להימנע מINT OVERFLOW כמה שיותר.מה!? מאיפה הבאת את זה!? כל קומפיילר C שאני מכיר פשוט מתעלם מ-overflow, ואני לא מכיר אף פלטפורמה שמדליקה את ה-integer overflow exception (בהנחה שהוא בכלל קיים במעבד).אולי אתה מתבלבל עם python 3 או משהו?
פורסם 2009 ביולי 2516 שנים זו בעיה שנתקלתי בה בC#.לא ניסיתי את זה בPYTHON... זה גם לא רלוונטי כל כך לשפה הזו.
פורסם 2009 ביולי 2516 שנים ב.net יש בדיקות overflow אם אתה מציין את הקוד שלך כ checked (בדיפולט הוא unchecked)לא ידוע לי שקיים משהו כזה בC כחלק מהתקן של השפה
פורסם 2009 ביולי 2516 שנים מחבר קיבלתי חשק לעשות מה שרציתי לעשות בזמנו - לכתוב גם קומפיילר ל BF. אני מתאר לעצמי שלשפה פשוטה כמו BF זה לא צריך להיות יותר קשה מלכתוב את ה interpreter, אבל אני לא יודע ממש איך להתחיל . ממה שקראתי קצת ברשת אני צריך להבין איך לממש את ה code generator (אין כמעט צורך לעשות ניתוח תחבירי וכו'). בשביל לעשות את זה אני צריך ידע ב assembler? אשמח לקישור למאמר שיוכל לעזור אותי (הדבר הכי טוב שמצאתי זה זה: http://compilers.iecc.com/crenshaw/ , אבל זה קצת overkill בגלל שכותבים שם קומפיילר הרבה יותר מתוחכם).
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.