פורסם 2009 במאי 416 שנים שלום!אני לא מצליח להעביר קומפילציה את הקטע קוד הבא:typedef struct{ Type vehicle; static int size; unsigned int taken:1; int type;}Carlot;השגיאה בקומפילציה נגרמת בגלל המשתנה הסטטי SIZE.אם אני מגדיר אותו כמשתנה רגיל (לוקאלי) אז הקומפילציה עוברת חלק.למה???תודה.שלומי.
פורסם 2009 במאי 416 שנים מחבר וואי, ככה הבנתי לפי חיפושים בפורומים. קצת מצחיק שהמרצה מלמד אותנו את זה, ועוד נותן מטלה ומדגיש להשתמש במשתנה סטטי שם תודה!
פורסם 2009 במאי 516 שנים מחבר אוקיי ניסיתי לקמפל את זה בפרוייקט חדש עם הסיומת CPP (כ C++) ואני מקבל שגיאה:Error 1 error LNK2001: unresolved external symbol "public: static int <unnamed-tag>::size" ....אגב אני משתמש ב VS2005אולי אני צריך גרסא חדשה יותר?
פורסם 2009 במאי 516 שנים כשמצהירים על static אז חייבים גם ליצור אותו איפשהו.כלומר בקובץ h אתה שם את ההצהרה:typedef struct{ Type vehicle; static int size; unsigned int taken:1; int type;}Carlot;ובקובץ cpp כלשהו אתה שם את ההגדרה:static int Carlot::size;
פורסם 2009 במאי 616 שנים מחבר כשמצהירים על static אז חייבים גם ליצור אותו איפשהו.כלומר בקובץ h אתה שם את ההצהרה:typedef struct{ Type vehicle; static int size; unsigned int taken:1; int type;}Carlot;ובקובץ cpp כלשהו אתה שם את ההגדרה:static int Carlot::size;אוקיי, ניסיתי את זה, ועכשיו אני מקבל שגיאה:Error 1 error C2720: 'Carlot::size' : 'static ' storage-class specifier illegal on membersניסיתי להגדיר static int Carlot::size; גם בתוך ה MAIN וגם גלובאלי.וודאי שזה נתמך בVS 2005?
פורסם 2009 במאי 616 שנים מחבר אין לי מושג כבר.אני אודה לך אם יש לך אפשרות להעלות לי לכאן קטע קוד קצר עם משתנה סטטי בתוך מבנה שעובר אצלך רומפילציה, אצלי זה פשוט נותן שגיאות.
פורסם 2009 במאי 616 שנים הייתי עושה את זה, אבל לא מותקן לי על המחשב הזה שום קומפיילר C או ++C (המחשב שלי לצערי כרגע מושבת).מה הקוד שאתה מנסה לקמפל, ומה השגיאות שאתה מקבל?
פורסם 2009 במאי 616 שנים מחבר אוקיי, אני אפרט.הנה הקובץ שאני עושה לו INCLUDE ב MAIN://structs.htypedef struct{ Type vehicle; static int size; //static isn't working unsigned int taken:1; int type;}Carlot;ה MAIN():#include "structs.hvoid main(){ Carlot a;}השגיאה שאני מקבל בנסיון לקמפל:error LNK2001: unresolved external symbol "public: static int <unnamed-tag>::size" (?size@<unnamed-tag>@@2HA)אם אני מוסיף את ההגדרה כמו שאמרת:static int Carlot::size;אני מקבל 2 שגיאות:Error 1 error C2655: 'Carlot::size' : definition or redeclaration illegal in current scopeError 2 error C2720: 'Carlot::size' : 'static ' storage-class specifier illegal on membersאם אני מנסה בלי ה STATIC כמו שאמרת:int Carlot::size;אז אני מקבל את אותה שגיאה כמו השגיאה הראשונה 2655, והשגיאה השנייה היא:Error 2 error C2086: 'int <unnamed-tag>::size' : redefinition
פורסם 2009 במאי 816 שנים למה אתה משתמש ב- typedef?מה הסיומת של הקובץ שלך? אתה מנסה לקמפל את זה לC או CPP?מה זה :1?וחסר לך " בשורה הראשונה של הקובץ של הMAIN.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.