עבור לתוכן

שאלה על קוד c בקומפיילר cpp, מצביע למבנה

Featured Replies

פורסם


[COLOR=blue]int[/COLOR] max_width, max_height, pix_depth, ppi;
[COLOR=blue]int[/COLOR] intrlv; [COLOR=green]/* 0 = no, 1 = yes */[/COLOR]
[COLOR=blue]int[/COLOR] n_cmpnts;
[COLOR=blue]unsigned[/COLOR] [COLOR=blue]char[/COLOR] point_trans[[COLOR=#6f008a]MAX_CMPNTS[/COLOR]];
[COLOR=blue]unsigned[/COLOR] [COLOR=blue]char[/COLOR] predict[[COLOR=#6f008a]MAX_CMPNTS[/COLOR]];
[COLOR=blue]unsigned[/COLOR] [COLOR=blue]char[/COLOR] *image[[COLOR=#6f008a]MAX_CMPNTS[/COLOR]];
[COLOR=blue]short[/COLOR] *diff[[COLOR=#6f008a]MAX_CMPNTS[/COLOR]]; [COLOR=green]/* was short ** */[/COLOR]
} [COLOR=#2b91af]IMG_DAT[/COLOR];
[COLOR=blue]typedef[/COLOR] [COLOR=blue]struct[/COLOR] [COLOR=#2b91af]image[/COLOR] {

הקוד במקור C

זה מתוך קובץ h

זה לא מתקמפל על השגיאה הבאה על המצביע למבנה עצמו (שתי שורות מהסוף)

לא כ"כ בטוח למה זה לא מתקמפל (ממתי struct צריך ctor)

error C2461: 'image' : constructor syntax missing formal parameters

תודה

דני

פורסם

גם קראת ל-struct שלך בשם image וגם הגדרת בתוכו שדה בשם image. הוא חושב שהשדה image שהגדרת הוא הגדרה של constructor (כי זו המשמעות של איבר שהשם שלו זהה לשם של המחלקה).

אגב, ב-++C לא צריך את הקומבינה של ה-typedef.

נערך על-ידי שניצל

פורסם
  • מחבר

לא אני קראתי :-) אני מנסה לקמפל קוד של C לתוך פרוייקט C++

מה הם ניסו לעשות פה (ב -C) ?

אני מניח שהשימוש בשם image מקרי ואני אוכל להחליף אותו וצאת מזה ? (כי זה לא מצביע למחלקה עצמה אלא ל - uchar....)

בכל מקרה - תודה.

פורסם

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

אתה יכול גם להחליף של השם של ה-struct מ-image למשהו אחר (כי סביר להניח שמשתמשים בשם IMG_DAT, אחרת לא היו טורחים לעשות את ה-typedef הזה), או לחילופין להיפטר מה-typedef ופשוט לקרוא לטיפוס הזה IMG_DAT.

נערך על-ידי שניצל

פורסם

אם הקוד ב-C לא ארוך מדי, הייתי משקיע קצת זמן בשביל להעביר אותו לסטנדרטים של ++C. יהיה יותר קל לתחזק אותו אח"כ.

ארכיון

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

דיונים חדשים