הודעת warning לא ברורה ב-VS

zagzagzag

New member
הודעת warning לא ברורה ב-VS

העברתי את התוכנית שלי מ-GCC ל-VS5, ואני מקבל warning שאני לא מבין. אלה ההגדרות הרלוונטיות:
typedef unsigned short mword_t; void function(mword_t address, mword_t value); extern mword_t codeSize; mword_t DC;​
ואני מקבל warning על השורה הבאה:
function(codeSize+DC, some_value);​
ה-warning:
warning C4761: integral size mismatch in argument; conversion supplied​
את ההודעה אני מקבל על החיבור בין codeSize ל-DC, אבל אני לא מבין למה. כשהעברתי את תוצאת החיבור למשתנה זמני ושלחתי אותו כפרמטר לא קיבלתי את ההודעה הזו. יש למישהו רעיון? אני לא יכול להשתמש בגרסה אחרת של VS, ואני לא יכול להשתמש ב-pragma warning.
 

galh

New member
נתקלתי במשהו דומה לא מזמן.

עוד לא הספקתי לבדוק את זה לעומק כי זמן ההגשה הוא ביום ראשון וזה עוד המון זמן... גם אתה צריך לכתוב קומפיילר לאוניברסיטה הפתוחה?
כנראה שהקומפיילר יוצר משתנה זמני לצורך החיבור של codeSize ו- DC בגודל של int. הפתרון המהיר זה שימוש במשתנה זמני או casting. אבל אולי יהיה לי פתרון יותר טוב ביום-יומיים הקרובים.
 

zagzagzag

New member
יום ראשון זה באמת עוד הרבה זמן ../images/Emo3.gif

אבל זה עדיין מרגיז שאני צריך לבצע הסבות בכל התוכנית
רעיונות נוספים יתקבלו בברכה (אולי יש איזשהי דרך שתחקה את GCC במקרה הזה ?)
 
למעלה