PDA

View Full Version : سوال: خروجی چی میشه(union و srtucture)



desatir7316
چهارشنبه 23 آذر 1390, 11:32 صبح
دوستان ممنون می شم راهنمایی کنید خروجی این تکه کد چی میشه؟http://www.manesht.ir/forum/images/smilies/huh.gif
البته دلیل اینکه این که خروجی مورد نظر بدست میاد خیلی مهمه
ممنون



union U{
struct S{
shortint x;
shortint y;
}
float f;
long l;
}u1;
u1.S.x=3;
u1.s.y=4;
cout<<f;




نتیجه f و L چی میشه؟

shahmohammadi
چهارشنبه 23 آذر 1390, 12:05 عصر
سلام.
یونیونی که تعریف کردین شامل 32 بیت هست (اندازه بزرگترین عضوش).(برای دیدن اندازه ها به فصل اول کتاب قمی مراجعه کنید.)
ایکس در دو بیت اول قرار داره. ایگرگ در دو بیت بعدی. f در چهار بیت اول (یعنی کل فایل) و l در همون چهار بیت.
این یه نکته بود. نکته دوم و مهم اینه که اطلاعات در یک متغیر به صورت بایت معکوس ذخیره می شند. وقتی ما به ایکس که دوبایت هست مقدار 03h رو می دیم به صورت 30h ذخیره میشه که هر رقمش به صورت باینری در یک بایت ذخیره میشه. ایگرگ هم همینطور. بقیه متغیر ها هم همینطور.
اگه با این توضیحات باز نتونستید حل کنید می تونیم بیشتر توضیح بدیم.

desatir7316
یک شنبه 27 آذر 1390, 18:29 عصر
ممنون خیلی خوب بود

اینم من پیدا کردم که همون چیزای که شما گفتید رو کامل کرده

رفتید تو به ادرس زیر روی لینک what is the result(union & structure)? کلیک کنید:

http://www.codeproject.com/Messages/4102942/what-is-the-result-union-structure.aspx