פורסם 2013 במאי 212 שנים שלוםאם אני מוסיף": unsigned long"אחרי שם ה-enum, זה לא מתקמפל..מישהו הצליח לעשות את זה?תודהcard
פורסם 2013 במאי 212 שנים מחבר חח אני צריך enum שיכיל את הקודי IR של הכפתורים של שלט IR. הקוד של כל כפתור הוא 4Bytes, כלומר long. לכן ה-type הדיפולטי של enum, שהוא int, לא יתאים לי כאן. בכל שפה שעבדתי בה עד עכשיו, אפשר לכתוב ":" אחרי הגדרת ה-enum, ואז להגדיר מאיזה type הוא, אבל פה, זה לא מתקמפל לי
פורסם 2013 במאי 212 שנים חח אני צריך enum שיכיל את הקודי IR של הכפתורים של שלט IR. הקוד של כל כפתור הוא 4Bytes, כלומר long. enum לא מיועד לדברים כאלה, אתה לא אמור בכלל לגעת בערכים שם (אפילו שלפעמים זה אפשרי). עבוד עם מערך. http://en.wikipedia.org/wiki/Enumerated_type
פורסם 2013 במאי 212 שנים עידוצר לי להגיד לך, אבל מה שאתה אומר ממש לא נכון.אשמח לראות דוגמאות.[תוספת: ראיתי עכשיו שלפעמים, בשפת C, משתמשים במספור מפורש של אלמנטים ב-enum כדי להפוך משתנה מטיפוס כזה לסט "דגלים". זה יכול להיות נוח במצבים מסויימים, אבל עדיין לא מדובר כאן על שמירה של ערכים שרירותיים]
פורסם 2013 במאי 212 שנים מחבר יש כמה מקרים בהם enum מתאים.יש את המוכר - כשאתה צריך ליצור אוסף של מצבים,אבל יש גם מצב ש-enum משמש כ-סט של קבועים.אם אתה רואה שאתה צריך להגדיר כמה קבועים, והם כולם חלק מאותה "סדרה",במקרה כזה מומלץ להשתמש ב-enum, כשאתה עושה הגדרה בעצמך לערך של כל איבר ב-enum.במקרה של הכפתורים של השלט - זה בדיוק המקרה..הערך ש-כל איבר ב-enum יקבל, הוא הקוד שלו.עוד יתרון של זה הוא שאח"כ אם יש לך פונקציה שאמורה לקבל את הקוד של כפתור כפרמטר,או להחזיר את הקוד של כפתור,אז במקום שהפונקציה סתם תקבל או תחזיר int/long,היא תקבל/תחזיר את הסוג הזה של ה-enum שהגדרת..
פורסם 2013 במאי 212 שנים יש כמה מקרים בהם enum מתאים.יש את המוכר - כשאתה צריך ליצור אוסף של מצבים,אבל יש גם מצב ש-enum משמש כ-סט של קבועים.אם אתה רואה שאתה צריך להגדיר כמה קבועים, והם כולם חלק מאותה "סדרה",במקרה כזה מומלץ להשתמש ב-enum, כשאתה עושה הגדרה בעצמך לערך של כל איבר ב-enum.במקרה של הכפתורים של השלט - זה בדיוק המקרה..הערך ש-כל איבר ב-enum יקבל, הוא הקוד שלו. זה hack על הרעיון של enum. הרי אם היית רוצה סט קבועים של מספרים עשרוניים, לא היית יכול לעשות את זה - כי הקומפיילר מלביש enum (לפחות בשפות שאני מכיר) על טיפוס int בסיסי. לא ש-hack זה רע בהכרח...עוד יתרון של זה הוא שאח"כ אם יש לך פונקציה שאמורה לקבל את הקוד של כפתור כפרמטר,או להחזיר את הקוד של כפתור,אז במקום שהפונקציה סתם תקבל או תחזיר int/long,היא תקבל/תחזיר את הסוג הזה של ה-enum שהגדרת..ופה אני חוזר לשאלה הראשונה שלי - בשביל מה, ואני אנסח אותה מחדש בעקבות מה שאמרת: האם זה באמת חשוב? כלומר, מה ההבדל העקרוני מבחינתך בין שתי השורות הבאות?send(enumTVCode)send(code[enumTV])עד כמה שאני זוכר כרגע, אין ב-c/c++ שליטה על הטיפוס של enum, אבל זה בערבון מוגבל - אני אצטרך לבדוק.
פורסם 2013 במאי 212 שנים מחבר אם היית רוצה סט קבועים של מספרים עשרוניים, לא היית יכול לעשות את זה - כי הקומפיילר מלביש enum (לפחות בשפות שאני מכיר) על טיפוס int בסיסי.בכל השפות שאני עובד איתן, אתה יכול לשים נקודותיים אחרי השם של ה-enum, ואז להגדיר מאיזה type אתה רוצה שהוא יהיה.אם לא מגדירים שום type, אז ה-default נבחר, שזה int.וזה מחזיר לשאלה המקורית שלי:האם גם ב-++C של ארדואינו אני יכול איכשהו להגדיר את ה-type של ה-enum?מקווה שמישהו יודע..
פורסם 2013 במאי 212 שנים ב++C זה נתמך רק בסטנדרט האחרון (C++0x/C++11), למרות שייתכן שחלק מסביבות הפיתוח תמכו בזה לא-רשמית גם לפני כן.תחפש איך אפשר לתמוך בC++11 בארדואינו.
פורסם 2013 במאי 1712 שנים תנסה לכתוב כךtypedef enum { kCircle, kRectangle, kOblateSpheroid} ShapeType;בגרסאות קודמות של cpp צריך לכתוב כך
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.